Android 开发高手课
张绍文
前微信高级工程师,Tinker 负责人
52723 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
导读 (1讲)
模块一 高质量开发 (25讲)
Android 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

练习Sample跑起来 | 唯鹿同学的练习手记 第3辑

实现代码
实现代码
查看代码中谁获取了IMEI
给某个方法增加try catch
实现代码
实现代码
介绍相关注解的含义
输出优化效果
输出优化效果
输出安装包信息
brew install boost jsoncpp
autoreconf -ivf && ./configure && make -j4 sudo make install
git clone https://github.com/facebook/redex.git
总结
两个练习
实现的大致过程
查看代码中谁获取了IMEI
给MainActivity的onResume方法增加try catch
AspectJ实现代码
Dex重分包的方法
通过ReDex命令优化
编译Sample
安装Boost
安装ReDex
下载ReDex
Sample利用ASM实现了统计方法耗时和替换项目中所有的new Thread
利用AspectJ实现插桩的例子
使用Facebook ReDex库来优化安装包
更加认真努力练习
参考
练习第22、27、ASM这三课的Sample
没想到之前的写的练习心得得到了老师的认可
唯鹿同学的练习手记第3辑

该思维导图由 AI 生成,仅供参考

没想到之前的写的练习心得得到了老师的认可,看来我要更加认真努力练习了。今天来练习第 22、27、ASM 这三课的 Sample。
尝试使用 Facebook ReDex 库来优化我们的安装包。
准备工作
首先是下载 ReDex:
git clone https://github.com/facebook/redex.git
cd redex
接着是安装:
autoreconf -ivf && ./configure && make -j4
sudo make install
在安装时执行到这里,报出下图错误:
其实就是没有安装 Boost,所以执行下面的命令安装它。
brew install boost jsoncpp
安装 Boost 完成后,再等待十几分钟时间安装 ReDex。
下来就是编译我们的 Sample,得到的安装包信息如下。
可以看到有三个 Dex 文件,APK 大小为 13.7MB。
通过 ReDex 命令优化
为了让我们可以更加清楚流程,你可以输出 ReDex 的日志。
export TRACE=2
去除 Debuginfo 的方法,需要在项目根目录执行:
redex --sign -s ReDexSample/keystore/debug.keystore -a androiddebugkey -p android -c redex-test/stripdebuginfo.config -P ReDexSample/proguard-rules.pro -o redex-test/strip_output.apk ReDexSample/build/outputs/apk/debug/ReDexSample-debug.apk
上面这段很长的命令,其实可以拆解为几部分:
--sign 签名信息
-s(keystore)签名文件路径
-a(keyalias)签名的别名
-p(keypass)签名的密码
-c 指定 ReDex 的配置文件路径
-P ProGuard 规则文件路径
-o 输出的文件路径
最后是要处理 APK 文件的路径
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

唯鹿同学在本文中分享了他对练习心得的总结,主要包括使用Facebook ReDex库优化安装包、利用AspectJ实现插桩、以及利用ASM实现统计方法耗时和替换项目中所有的new Thread。他详细介绍了使用ReDex优化安装包的步骤和效果,以及利用AspectJ和ASM实现插桩的具体代码和效果对比。在ASM的练习中,他展示了给方法增加try catch和查看代码中获取IMEI的简单实现。总体来说,文章内容涵盖了使用技术框架优化安装包和实现插桩的具体步骤和效果,对于对这些技术感兴趣的读者具有一定的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 小小代码
    试了下Redex去除Dex文件Debuginfo行号信息的功能,发现行号由正确的com.sample.redex.MainActivity.onCreate(MainActivity.java:20)变为不正确的com.sample.redex.MainActivity.onCreate(Unknown Source:13),并没有像支付宝所说的变成-1

    作者回复: 因为Sample的是保留了行号,你需要在配置文件里面设成所有都去掉

    2019-04-13
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部