上图是Android整体的架构,Android Runtime之于Android而言相当于心脏之于人体,是Android程序加载和运行的环境。这篇文章主要针对Android Runtime部分进行展开,探讨Android Runtime的发展以及目前现状,并介绍应用Profile-Guided Optimization(PGO)技术对应用启动速度进行优化的可行性。
[Read More]TargetsdkVersion 升级31(Android12)适配
TargetsdkVersion 升级31(Android12)适配
我们升级到Targetsdk29有大半年时间了,今年为了满足审查去除蓝牙的精确定位权限,以及满足上架Google Play的要求,需要将Targetsdkversion升级到31,适配到Android12。这个过程遇到不少坑,这里记录一下,希望能对大家有所帮助。
[Read More]Kotlin升级1.5版本synthetic引发的血案分析
场景重现
因为项目里面Kotlin版本还停留在1.4,看到1.5版本更新记录提升了性能并且新加了一些特性,准备怒升级一波。怀着开心的心情升级完之后,运行起来就傻眼了!
视频列表有个浮层没有隐藏,就升级下Kotlin,居然还有这个问题,真是太不可思议了!把Kotlin降级回去,然后就好了,确定是因为Kotlin升级导致的问题。接下来就开始分析了。
[Read More]Android深色模式适配原理分析
背景
从Android10(API 29)开始,在原有的主题适配的基础上,Google开始提供了Force Dark机制,在系统底层直接对颜色和图片进行转换处理,原生支持深色模式。到目前为止,我们从用户数据分析**50%**以上的用户已经使用上了Android10系统。深色模式可以节省电量、改善弱势及强光敏感用户的可视性,并能在环境亮度较暗的时候保护视力,更是夜间活跃用户的强烈需求。对深色模式的适配有利于提升用户口碑。 转载请注明来源「申国骏」
[Read More]Android性能分析&启动优化
两年前我做过了类似的启动优化分析《如何统计Android App启动时间》和《如何优化Androd App启动速度》。两年过后,今天看来,之前说的nimbledroid工具已经需要收费,而且Android Studio自带的Android Profiler已经足够强大,并且Systrace也有了更为强大的Perfetto UI分析工具。我们是时候来重新学习一下目前性能分析的方法以及如何在分析的基础上做启动优化这个事情。转载请注明来源「Bug总柴」
[Read More]单元测试之JUnit4
JUnit4
JUnit是一个帮助编写和执行单元测试的框架。可能很多人都接触过单元测试,但是只是停留在copy别人的测试代码再改一下的状态,下文尝试较为体系列举JUnit4中比较关键的一些知识点。转载请注明来源「Bug总柴」
[Read More]Databinding subModule library 爬坑
问题描述
最近把gradle的‘com.android.tools.build:gradle’升级到3.2.1,升级之后dataBinding出错了,编译通过,但是运行时报了一个错误java.lang.ClassCastException: com.youdao.dict.databinding.FragmentYdliveBindingImpl cannot be cast to com.youdao.ydliveplayer.databinding.FragmentYdliveBinding
。转载请注明来源「Bug总柴」
Dagger2注解大全
前言
Dagger是帮助实现依赖注入的库,虽然很多人都知道依赖注入对于架构设计的重要性,但是Dagger学习曲线十分陡峭,官方文档更是看了几遍也很难消化。本文旨在通过一篇文章来让大家看懂并上手Dagger。
Dagger最早由JakeWharton在square公司开发。后来转由Google维护并发展为Dagger2。Dagger2区别于Dagger1的地方主要在于两个,一个是由运行时通过反射构建依赖关系变为编译期通过注解生成依赖关系,另一个是出错时有更好地提醒(当然这也是因为Dagger2在编译期间根据注解生成好了可读性较好的代码带来的优势)。 转载请注明来源「Bug总柴」
Android create pinned shortcut创建桌面快捷方式
前言
本文主要针对文章Create shortcuts中动态创建桌面快捷方式的解释和例子。在8.0系统中,创建桌面快捷方式的广播com.android.launcher.action.INSTALL_SHORTCUT
不再生效,创建桌面快捷方式需要用另外的方法。由于文章中没有详细的例子而且表达不是很清楚,笔者也一头雾水,经过了多方的尝试,最后才明白其中的意思,希望能给同样遇到困惑的人一点帮助。转载请注明来源「Bug总柴」
targetSdkVersion升级到28一些修改的地方
前言
Android官方的迁移适配文档有点混乱,这篇文章旨在给开发者在适配中对代码做快速检查。适配变化将分为运行版本影响和Target版本影响,并提供可能影响的功能以便测试参考。转载请注明来源「Bug总柴」
[Read More]