学习笔记
文章平均质量分 90
NB奋斗小青年
苦逼的程序员一个
展开
-
Andorid资源瘦身去重丶图片压缩丶混淆插件(3)
前介一个 Apk 主要分为 res 丶 dex 丶 META-INF 丶 AndroidManifest.xml 丶 resources.arsc 组成(对应文件作用看下方表格)。从图片可以看到一个项目的 res 占很大一部分内存,其次就是 dex 文件。所以优化 Apk 的体积就应该从 res 丶 dex 出发。昵称介绍resApk 资源,代码中对应的 res 目...原创 2019-12-06 10:32:04 · 482 阅读 · 0 评论 -
Andorid资源瘦身去重丶图片压缩丶混淆插件(2)
功能实现前面已经分析清晰了,只需要在 processDebugResources Task 添加一个 dotLast 的 Action对应去重丶压缩丶混淆丶修改 resources.arsc 就 OK 了。w去重资源其实美团技术团队,提出过这种去重的方案,当时我不明白这些大厂的程序员只喜欢说理论不喜欢给一个代码实例吗?大体方案如下:resources-debug.ap_ 是一个 ZIP...原创 2019-12-06 10:31:23 · 395 阅读 · 0 评论 -
Andorid资源瘦身去重丶图片压缩丶混淆插件(1)
前介APK 瘦身是很多公司忽略的问题,因为现在网速快速发展以及流量的降费,这个问题也越来越被忽略。但是大项目还是很在意瘦身的,支付宝对瘦身就做到了极致(参考链接)。网上大部分的方案都是:压缩图片减少多余的so删除无用资源代码混淆这些方案大部分都是在编写代码时期做的操作,容易出错和遗漏,我觉得这都算不上什么瘦身只能说是常识。于是我想能不能开发一款插件,在 APK 编译期间对 Apk...原创 2019-12-06 10:30:13 · 421 阅读 · 0 评论 -
jetpack-LiveData&ViewModel学习
LiveData简介LiveData一个具有生命周期的对象。他可以和Activity的生命生命周期绑定,可以监听对象的数据变化。LiveData的优势可监听数据的变化没有内存泄露:LiveData绑定Lifecycle(AndroidX的Activity和Fragment都实现了Lifecycle)对象,并在其相关生命周期被破坏后自行清理。没有因停止活动而崩溃:当界面失去焦点或销毁,此...原创 2019-07-24 15:10:33 · 652 阅读 · 0 评论 -
2019-4-19小米面试总结
面试过程小米面试会预约一个时间发邮件这里有个坑,发的邮件不光有约定的地点+时间,后面还有一个确认接受,我没点确认接受,导致我去前台查询说我没有查询到,面试了3个回合,3个小时,没有中间休息,建议大家面试之前带瓶水丶带瓶水丶带瓶水,重要的事情说三遍,最后也每到HR,我的结果应该是凉凉,过程还是很轻松的算法题目生产者和消费者刚开始我脑袋一懵啥是生产者丶消费者,面试官说你软件工程毕业不知道什么是...原创 2019-04-22 15:21:41 · 1646 阅读 · 0 评论 -
V2多渠道打包分析丶工具开发
V2签名分析简单过一下V1签名多渠道方案V1签名原理V1多渠道方案(1)V1多渠道方案(2)V1多渠道方案(3)V2渠道原理V2多渠道包实现原理定位签名块位置签名块中增加渠道信息修改EOCD中央偏移量结尾简单过一下V1签名多渠道方案V1签名原理v1 签名方案重要的原理就是对 apk 中所有的文件计算摘要 保存到 MANIFEST.MF 文件中;然后计算 MANIFEST.MF 中每个条目的摘...原创 2019-03-13 19:48:04 · 544 阅读 · 0 评论 -
微信发送自定义语音
很皮微信前景开发遇到的难题收集语音素材问题解决录制音频如何变声音频格式转换amr问题(ffmpeg&amr)音频方面的知识点音频文件的组成PCM&WAV的关系音频格式转换原理音频参数的理解转换格式wav转amrmp3转amr前景曾经一直想做一款关于微信的软件,目标就是网上收集很多调皮捣蛋的语音或者录音变声,然后发送给某个微信好友,感觉很有意思开原创 2019-03-08 16:11:02 · 6452 阅读 · 1 评论 -
AspectJ语法(二)
AspectJ语法回顾解释Advice间接选择Join Point直接选择Join Point理解call和execution@After丶@Beforewithincodewithin丶this@Around总结回顾上节写了一个简单的测试用例,look下代码@Aspectpublic class CoreAspetJ { @After("call(* com.mmvoice.as...原创 2018-11-12 16:37:20 · 1128 阅读 · 0 评论 -
AspectJ自定义注解之埋点(三)
使用AspectJ埋点介绍onClick事件埋点自定义埋点什么是注解元注解定义注解编写AspectJ代码介绍埋点,我们公司有很多核心的方法,要给大数据做统计需要做埋点,埋点其实就是将用户操作这部分业务逻辑的记录下来,给大数据作分析,前端埋点就是插入上报信息的功能,后端埋点一般是Api埋点,埋点代码和业务逻辑没有任何关系,如果入侵是写入(手动插入埋点代码),将来的维护成本大大提升,更何况埋所有的...原创 2018-11-13 15:02:24 · 1127 阅读 · 0 评论