反编译:上工具ApkTool

下载自行搜索google apktool github

cd apktool目录

java -jar apktool_2.0.1.jar d xx.apk

生成xx目录即反编译的文件,配置以及资源文件可以直接编辑,但是java源码在smali目录,是smali文件.

java -jar apktool_2.0.1.jar b xx

回编译成apk,现在不能直接安装使用,可以USB调试安装,即adb install -r xx.apk

签名:jdk自带签名法

需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下)

需要配置JAVA_HOME和JRE_HOME(自行配置)

生成密钥

keytool -genkey -alias xx.keystore -keyalg RSA -validity 10000 -keystore xx.keystore
rem  说明:-genkey 产生密钥rem       -alias xx.keystore 别名 xx.keystorerem       -keyalg RSA 使用RSA算法对签名加密rem       -validity 10000 有效期限4000天rem       -keystore xx.keystore */
jarsigner -verbose -keystore xx.keystore -signedjar xx_signed.apk demo.apk xx.keystore
rem /*说明:-verbose 输出签名的详细信息rem        -keystore  xx.keystore 密钥库位置rem        -signedjar xx_signed.apk xx.apk xx.keystore 正式签名,三个参数中依次为签名后产生的文件xx_signed,要签名的文件xx.apk和密钥库xx.keystore.*/

签名好了,可以安装了。

zipalign优化

未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于xx\adt-bundle-windows-x86-20140702\sdk\build-tools\21.1.2目录下或其他SDK版本相应目录)工具对其优化:

zipalign -v 4 xx_signed.apk final.apk

  如上,zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(4个字节是一个性能很好的值),这样android系统就可以使用mmap()(请自行查阅这个函数的用途)函数读取文件,可以在读取资源上获得较高的性能,

  PS:1.在4个字节边界上对齐的意思就是,一般来说,是指编译器吧4个字节作为一个单位来进行读取的结果,这样的话,CPU能够对变量进行高效、快速的访问(较之前不对齐)。
2.对齐的根源:android系统中的Davlik虚拟机使用自己专有的格式DEX,DEX的结构是紧凑的,为了让运行时的性能更好,可以进一步用"对齐"进一步优化,但是大小一般会有所增加。

反编译dex文件:dex2jar

上面只反编译资源配置文件,java文件需要dex2jar,

解压缩apk文件,找到dex文件

dex2jar.bat    xx.dex

即可得到jar文件,通过jd_gui反编译java文件。

对于odex化的apk需要去odex化,反编译,还有smali文件向dex,以及smali的编辑,下次再说吧。

更多相关文章

  1. android使用ant自动打包(更改java文件中的属性值,批量自动生成)
  2. Android(安卓)将Activity设为Dialog样式,并铺满全屏
  3. uevent拔插事件分析--基于imx8
  4. fragment和radiobutton做出类tabhost效果
  5. Android-NDK开发之基础--Android(安卓)NDK开发技巧二
  6. android开发之播放资源文件中的视频
  7. 2. Android(安卓)Build系统
  8. Android之创建自定义属性
  9. android启动过程配置文件的解析与语法 .

随机推荐

  1. android 实现抽屉效果
  2. Android(安卓)进阶——实现周期性任务调
  3. android屏幕横向滚动,android图片横向滚动
  4. 【Android(安卓)Training - 03】使用Frag
  5. WEEX-EEUI 页面的高度问题(页面高度设置为
  6. Android(安卓)API Guides---Audio Captur
  7. android区域连接,Internet连接和云连接
  8. Android(安卓)App静默安装的解决方案
  9. MTK androiod5.1源码精简系统APP
  10. Unity3d Android(安卓)SDK接入解析(四)通用