Android进阶
文章平均质量分 73
闫文敬
Android开发工程师、安全工程师
展开
-
Android内存泄漏问题排查分析及常见解决方案
在Android开发过程中,当一个对象已经不需要再使用了,本该被回收时,而另个正在使用的对象持有它引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了。原创 2022-09-07 09:38:09 · 6827 阅读 · 5 评论 -
Android Context 归因标记
在Context类中的注释的解释如下:返回一个新的不同标记的上线文对象…用于特别场景下需要区分context来源时使用。原创 2022-09-03 14:05:41 · 919 阅读 · 0 评论 -
Android App links 链接打开app功能
Android App Links是6.0以后才支持的链接方式,APP通过定义一组你自有的HTTP URL将该其设置为系统的默认打开对应域名的地址的应用(注意区分:不是6.0以下的默认打开某类数据)。当用户点击了包含你的域名的链接时,系统默认用你的APP打开该链接,如果用户手机未安装你的APP,那么会直接用浏览器打开。2、无缝的用户体验:因为只有自己的APP可以打开,所以不会出现让用户选择哪个应用的打开的弹框,如果用户没有安装你的APP,则直接用浏览器打开。2、如果只有一个应用能打开,则直接用该应用打开;.原创 2022-08-17 15:47:47 · 8395 阅读 · 0 评论 -
APP性能优化之启动流程分析
Android系统已经启动完毕,一些核心的服务也已经启动完毕,然后启动Launcher应用。App进程什么时候被创建?当一个应用调用另一个应用中的页面之时,如果目标进程不存在,则会创建一个新的进程并启动。Application启动流程先看下流程图接下来就说App进程的创建过程了。App进程的创建这个时候进程已经创建完毕,但是如何与应用自身的Application联系起来呢?Application的绑定以下是部分源码片段ActivityThread.javasendMessage(H.BIND_APPLICA原创 2022-06-21 14:09:01 · 1258 阅读 · 0 评论 -
Android APP性能优化之启动流程分析
1.背景APP启动时长会很大影响用户的体验,对于产品的评价以及用户的心情都有不少的影响。对优路教育APP进行启动优化检测,通过相关检测,排查出启动耗时较长的逻辑,进行优化,想要进一步降低启动时间对用户的影响。2.目标对应用的启动流程进行分析,找到可以优化的地方,结合当前项目进行优化。3.过程在说应用的启动流程之前,得先了解一下Android系统的启动流程,因为Application的启动是离不开系统的处理的。1.Android系统的启动过程分析BootLoader启动内核和init进程;i原创 2022-04-30 17:20:15 · 1149 阅读 · 0 评论 -
Android 隐私合规API检查方案
对于涉及用户隐私的API的行为,Android端无法通过有效的方案进行Android系统隐私权限的API方法可以通过Xposed进行hook处理,监听到相关方法的调用;仓库代码:https://github.com/yanerchuang/PrivacyPolicyComplianceCheck准备一个Xposed的设备运行脚本至设备上通过过滤’hookLog日志进行查看实现后效果如下...原创 2021-09-18 18:16:44 · 2588 阅读 · 0 评论 -
Android cpu架构类型升级方案调研
1.背景说明当前APP上个版本APK安装包大小58.3M,近期即将上线原生直播功能,APK大小将会增加至109M左右,会影响用户的升级意愿和安装使用情况,故对APK架构支持进行调研,通过数据对比得出可行性方案结论。2.CPU架构相关知识Android 支持的cpu架构类型:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mips64,其中分为三大家族:arm、x86、mips,目前常见的麒麟cpu、高通cpu、联发科cpu都是arm架构,常见于移动设备原创 2022-03-27 09:40:24 · 597 阅读 · 0 评论 -
Handler消息机制
handle原理解析原创 2022-01-21 17:42:04 · 436 阅读 · 0 评论 -
Handler原理解析
在线程内部有一个或多个Handler对象,外部程序通过该Handler对象向线程发送异步消息,消息经由Handler传递到MessageQueue对象中。线程内部只能包含一个MessageQueue对象,线程主执行函数中从MessageQueue中读取消息,并回调Handler对象中的回调函数handleMessageO。1.LooperLooper的作用有两点,第一是为调用该类中静态函数prepare()的线程创建一个消息队列;第二是提供静态函数loop(),使调用该函数的线程进行无限循环,并从消息.原创 2020-09-28 09:09:21 · 408 阅读 · 0 评论 -
今日头条启动优化
前言网上关于启动优化的文章多不胜数,内容千篇一律,大都是列举一些耗时操作,采用异步加载、懒加载等。而在面试过程中,关于启动优化的问题,如果只是很表面地回答耗时操作应该放在子线程,显然太过于普通,无法跟竞争者拉开差距。如何让面试官知道你的“内功深厚”,那肯定是要往原理层面去回答。本文重点还是关注原理,冷启动优化这个问题能延伸到很多原理层面的知识点,本文比较有意思的地方是通过反编译今日头条App,研究大厂的启动优化方案。讲启动优化之前,先看下应用的启动流程一、应用启动流程应用进程不存在的情况下,从点转载 2020-07-23 14:38:10 · 2481 阅读 · 0 评论 -
android V2 重签名
//查看密钥属性keytool -list -v -keystore 密钥路径//签名apkjava -jar apksigner.jar sign --ks 密钥路径 --ks-key-alias 别名 --ks-pass pass:密码 --out 输出apk路径 输入apk路径...原创 2019-01-28 13:31:53 · 2088 阅读 · 0 评论 -
Android 修改 keystore 别名及密码
keytool -list -v -keystore xxx.jks -storepass 【password】 //查看秘钥库信息keytool -printcert -file xxxx/META-INF/CERT.RSA //查看包签名信息keytool -changealias -keystore xxx.jks -alias 【旧别名】 -destalias 【新别名】 /...原创 2019-04-02 15:34:05 · 2258 阅读 · 0 评论 -
AndroidAPK二次打包方法
使用前提:apk未加固 Android逆向助手下载 1. 使用Android逆向助手提取classes.dex; 2. 反编译dex后生成对应的.small文件,记事本打开; 3.同时将dex转jar,使用jd-gui查看java代码找到需要添加代码的地方; 4.自己创建项目,添加想要实现的功能,生成apk后,同样反编译得到.small文件,找到对应代码; 5.将原创 2016-08-11 16:55:46 · 4090 阅读 · 0 评论