Android实践

最好的Android投屏工具

赵裕(vimerzhao)
背景 之前一直用Chrome的Vysor插件做投屏,最近这个插件无法使用了 手机连着USB,放在桌子里面,拿起来操作很不方便,胳膊肘疼 于是调研了下可选的投屏方案 AirDroid过于庞大,还要收费,而且公司

Android客户端远程调试方法

赵裕(vimerzhao)
在最近的需求开发中,会遇到一些兼容性问题,经常只能在特定ROM和Android版本上复现。由于测试和开发不在同一区域办公,往往需要通过物资穿梭车送手机。由此带来两点不便: 使用成本大,调试效率低,因为物

插件化技术的演进之路

赵裕(vimerzhao)
序言 关于本次分享 今天要和大家分享的是Android的插件化技术,这在Android中其实是一个相对来说比较复杂,历史悠久,内容庞杂的知识,不是今天一个小时能讲完的,所以我今天也是有选择地分享一些我认为

设置Android全局可调试

赵裕(vimerzhao)
背景 最近要看一些系统打印的日志,发现需要开启debuggable标志,于是调研了一下。 实现 参考https://www.renyiwei.com/archives/1704.html[Android修改

Android P源码构建记录

赵裕(vimerzhao)
缘由 最近在追查一个dex2oat的问题时,看源码觉得有些地方不单步调试或者加些日志,实在是不方便,另外由于最近的工作和Framework层打交道比较多,也有必要搞个源码环境,趁机深入学习一下。 虚拟机 一

给DroidPlugin添加概览屏幕

赵裕(vimerzhao)
背景 DroidPlugin默认不支持多任务: VirtualApp是支持的: 方案 其实参考的就是VirtualApp的实现,它的核心代码是: // com.lody.virtual.client.hook.proxies.am.HCallbackStub IBinder token = ActivityThread.ActivityClientRecord.token.get(r); ...... int taskId = IActivityManager.getTaskForActivity.call( ActivityManagerNative.getDefault.call(), token, false); 其实就是反射调用ActivityMa

客户端调试日志编码之道

赵裕(vimerzhao)
日志分很多种了,这里针对的是客户端的、开发调试用的日志,为什么要加这两个限制呢? 后台日志都在服务器,开发容易操作,客户端日志大部分在本机,有的测试甚至不会捞日志,开发想帮忙都鞭长莫及 开发调试的日志,其

Android安装包优化

赵裕(vimerzhao)
背景 安装包膨胀的原因 业务的增加、产品的演进是安装包大小增加的本质原因。但是在演进之路上,由于一些所谓的技术债务,如: 使用的资源未经裁剪(如全量字体文件、分辨率过大的图片) 不合理的大资源(如大的视频、音

Android安装包极限优化

赵裕(vimerzhao)
背景 目前Android安装包的优化方法论比较成熟,比如 混淆代码(Proguard、AndResGuard) 移除不在使用的代码和资源 对于音频、图片等使用更轻量的格式 等等 这些方法都比较常规,在项目成熟后优