① java解析apk包名以及版本号时报错,java.util.zip.ZipError。请问这是什么问题啊只有在正式服务器会出现
java解析apk包名以及版本号时报错,java.util.zip.ZipError引入的jar包不对,或者你的压缩文件不标准。一般就会报这个错误。关于上面英语的翻译:Key features(主要特性):Create, Add, Extract, Update, Remove files from a Zip file(针对ZIP压缩文件创建、添加、抽出、更新和移除文件)Read/Write password protected Zip files(读写有密码保护的Zip文件)Supports AES 128/256 Encryption(支持AES 128/256算法加密)Supports Standard Zip Encryption(支持标准Zip算法加密)Supports Zip64 format(支持zip64格式)Supports Store (No Compression) and Deflate compression method(支持Store(非压缩)和Deflate压缩方法—不太明白)Create or extract files from Split Zip files (Ex: z01, z02,…zip)(针对分块zip文件创建和抽出文件)Supports Unicode file names(支持Unicode编码文件名)Progress Monitor(进度监控)
② 如何获得当前开发的apk包的版本号
应用场景:1、在界面中显示应用程序的版本号;2、用户启动该应用,后台判断该应用是否是最新版本。上述情景都需要在程序中自动获取到应用的版本号。思路简介:在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的
③ 怎样获取应用的包名和类名及解析aapt
原理:通过查看AndroidManifest.xml方法:可以通过如下方法获得:1.aaptaapt mp xmltree apk路径 AndroidManifest.xml > 输入的路径2.apktool 反编译apktool d -f apk路径 输出的路径3.monkey—Android自带的工具adb shell monkey –port 1080 -v -v aapt即 Android Asset Packaging Tool该工具在SDK/tools目录下,如果你没有设置环境变量,那需要进入该目录下才能运行aapt命令,如果设置了环境变量则可以在任何目录下运行aapt命令了。1、列出压缩文件目录aapt l[ist] [-v] [-a] file.{zip,jar,apk}参数:-v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。其中Method表示压缩形式,有Deflate和Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;Ratio表示压缩率。-a:会详细输出所有目录的内容。2、查看APK的相关信息aapt d[ump] [–values] WHAT file.{apk} [asset [asset …]]badging Print the label and icon for the app declared in APK.permissions Print the permissions from the APK.resources Print the resource table from the APK.configurations Print the configurations in the APK.xmltree Print the compiled xmls in the given assets.xmlstrings Print the strings of the given compiled xml assets.1)、查看APK包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息aapt mp badging < file.apk>2)、查看权限aapt mp permissions <file.apk>3)、查看资源列表aapt mp resources <file.apk>把查看信息保存到文件中去可以使用:aapt mp resources <file_path.apk> > sodino.txt4)、查看APK配置信息aapt mp configurations <file_path.apk>5)、查看指定APK的指定XML文件aapt mp xmltree <file_path.apk> res/***.xml以树形结构输出的xml信息。aapt mp xmlstrings <file_path.apk> res/***.xml输出xml文件中所有的字符串信息。3、编译android资源aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \[-0 extension [-0 extension …]] [-g tolerance] [-j jarfile] \[–debug-mode] [–min-sdk-version VAL] [–target-sdk-version VAL] \[–app-version VAL] [–app-version-name TEXT] [–custom-package VAL] \[–rename-manifest-package PACKAGE] \[–rename-instrumentation-target-package PACKAGE] \[–utf16] [–auto-add-overlay] \[–max-res-version VAL] \[-I base-package [-I base-package …]] \[-A asset-source-dir] [-G class-list-file] [-P public-definitions-file\[-S resource-sources [-S resource-sources …]] \[-F apk-file] [-J R-file-dir] \[–proct proct1,proct2,…] \[-c CONFIGS] [–preferred-configurations CONFIGS] \[-o] \[raw-files-dir [raw-files-dir] …]Package the android resources. It will read assets and resources that aresupplied with the -M -A -S or raw-files-dir arguments. The -J -P -F and -Roptions control which files are output.部分参数解释:-f:如果编译出来的文件已经存在,强制覆盖;-m:使生成的包的目录放在-J参数指定的目录;-J:指定生成的R.Java的输出目录;-S:res文件夹路径;-A:assert文件夹的路径;-M:AndroidManifest.xml的路径;-l:某个版本平台的android.jar的路径;-F:具体指定APK文件的输出1)、将工程的资源编译出R.java文件aapt package –m –J <R.java目录> -S <res目录> -l <android.jar目录> -M<AndroidManifest.xml目录>2)、将工程的资源编译到一个包里aapt package –f –S <res目录> -l <android.jar目录> -A <assert目录> -M<AndroidManifest.xml目录> -F <输出的包目录>4、打包好的APK中移除文件aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 …]5、添加文件到打包好的APK中aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 …]6、显示aapt的版本aapt v[ersion]
④ 需要在java环境下取得apk应用程序名
这个很简单,你需要使用PackageManager,你查看这个类,就知道怎么获取Android手机里所有的应用程序的应用名称了,我的程序在linux里,若你查找了 还没搞定我可以给你一段代码.// 获取packageManager对象 PackageManager packageManager = this.getPackageManager(); /*getInstalledApplications 返回当前设备上安装的应用包集合 * ApplicationInfo对应着androidManifest.xml中的application标签。通过它可以获取该application对应的信息 */ List<ApplicationInfo> applicationInfos = packageManager.getInstalledApplications(0);以上是主要代码applicationInfos里的是ApplicationInfo类,ApplicationInfo applicationInfo = applicationInfos.get(i);String packageName = applicationInfo.packageName;// 包名 String packageLabel = packageManager.getApplicationLabel(applicationInfo).toString();packageLabel 这个就是应用程序名称
⑤ java怎样获取apk文件icon图标
java获取apk文件icon图标的方法步骤如下:1、解压apk,apk实际上是zip压缩档。2、解析AndroidManifest.xml文件,解析application节点,获取android:icon属性,得到图标资源文件名。3、图标资源大多数位于/drawable-hdpi目录下。4、尝试读取png或者jpg格式,如果还读取不到,那就按照没有图标处理。
⑥ 怎么在apk安装监听里面获取安装APK的版本号或者版本名
我获取的版本号与版本名称。[mw_shl_code=java,true]public class Configutil { public static int getVerCode(Context context) { int verCode = -1; try { verCode = context.getPackageManager().getPackageInfo("com.tec", 0).versionCode; } catch (NameNotFoundException e) { // Log.e(TAG, e.getMessage()); e.printStackTrace(); } return verCode; } public static String getVerName(Context context) { String verName = ""; try { verName = context.getPackageManager().getPackageInfo("com.tec", 0).versionName; } catch (NameNotFoundException e) { // Log.e(TAG, e.getMessage()); e.printStackTrace(); } return verName; } // public static String getAppName(Context context) { // String verName = context.getResources().getText(R.string.app_name) // .toString(); // return verName; // }}[/mw_shl_code]
⑦ 如何通过反编译查询apk包名信息
首先安装java环境,然后到google code里面下载apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2从两个压缩包中解压aapt.exe、apktool.bat和apktool.jar三个文件,放在一个文件夹中(为方便命令行中使用apktool命令,可将解压到的路径放入path或者直接将这三个文件放入path路径下的文件夹,如C:\Windows)通过cmd运行 Apktool 命令: apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk
⑧ 如何获取apk包的包名和activity
方法一 用重签名工具,这个在Robotium 中用得比较多另外一种方式用命令方获取Aapt mpbadging xxxx.apk第一个框为包名第二个框为主Activity名如果取包名与Activity在命令行中不方例还可以用以下方式获取Aapt mpbadging xxxx.apk >c:\apk.txt之后打开c:\apk.txt第三种方式,如果你装了Appium 可以这么操作下进入设置页,选择APK 路径,下面就会显示包名和Activity名称第四种用hierarchyviewer 查看Aapt 命令AAPT mp xmltree XXX.APK AndroidManifest.xm. >c.txt之后去C.TXT 查看第6种Adbshell mpsys activity activities >d:\log.txt之后去log.txt 搜package 和Activity第七种Adb logcag >d:\3.txt之后打开手机上的应用打开之后立即在电脑上按ctrl+c之后去3.txt 找PACKAGE和Activity
⑨ 如何简单快速获取Android应用包名
一、先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root)。①在android设备上点击一下你要测试的应用,然后就不用操作设备了。②在PC上的命令行输入:adb logcat>D:/log.txt *:I 在这里的D:/log.txt你可以改成其他的路径,但是一定要先确保路径下没有这个文件,不然的话你以前的文件就被改掉了,一定要小心。③按下Ctrl+c先停掉(为了避免过多的新信息)。打开刚刚的那个文件D:/log.txt。从文件最下面开始找下面格式的信息I/ActivityManager( 数字): Displayed 包名/类名: +数字ms例如我的信息如下: I/ActivityManager( 272): Displayed com.vane/.act.ActLauncher: +315ms不过你可能会发现有很多这种格式的信息,到底哪个才是你需要的呢,如果你严格按照刚刚的步骤做的话,那么很可能是最下面那条信息,即使不是那么也肯定是最下面几条信息中的某一条,这需要你根据应用进行辨别。二、使用aapt工具cmd中进入到aapt所在目录,输入aapt mp badging 包绝对路径就可以看到包名和权限等信息了
⑩ java如何根据apk路径读取apk的包名以及版本号
IO流,在程序中根据路径可以找到报名,不过你这个程序部署到真机上就不行了