![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android知识
文章平均质量分 66
cao_null
这个作者很懒,什么都没留下…
展开
-
Android UI绘制原理(一)——Activity、Window、ViewRootImpl基本关系
代码路径 /frameworks/base/core/java/android/app/ActivityThread.java /frameworks/base/core/java/android/app/Activity.java /frameworks/base/core/java/android/view/Window.java /frameworks/base/core/java/android/view/WindowManagerImpl.java /frameworks/base/co原创 2021-08-24 17:49:59 · 297 阅读 · 0 评论 -
Android系统启动(三)——SystemServer
继续分析SystemServer 基于Android Oreo 8 涉及代码位置 /frameworks/base/services/java/com/android/server/SystemServer.java /frameworks/base/core/java/android/app/ActivityThread.java /frameworks/base/core/java/android/app/ActivityManager.java /frameworks/base/servi原创 2021-08-10 10:54:24 · 414 阅读 · 0 评论 -
Android系统启动(二)——Zygote启动
上一篇讲到了init启动Zygote的过程,这次分析Zygote 涉及类 /frameworks/base/cmds/app_process/Android.mk /frameworks/base/cmds/app_process/app_main.cpp /frameworks/base/core/jni/AndroidRuntime.cpp /frameworks/base/core/java/com/android/internal/os/ZygoteInit.java /framewor原创 2021-08-04 17:45:49 · 966 阅读 · 0 评论 -
Android init与zygote启动
init是Android用户空间启动的第一个进程。 代码基于Android 8 涉及类路径 /system/core/init/init.cpp /system/core/rootdir/init.rc /system/core/init/init_parser.cpp /system/core/init/action.cpp /system/core/init/keyword_map.h /system/core/init/service.cpp /system/core/rootdi.原创 2021-07-30 17:39:42 · 627 阅读 · 2 评论 -
Activity启动流程
基于Android 28 先看整体时序图,省略了一部分不重要的部分,保留了关键部分。蓝色是执行启动Acitivity的进程,粉色是AMS所在的进程,深红是最终启动的Activity进程。 启动 @Override public void startActivity(Intent intent) { this.startActivity(intent, null); } 一路往下调最终是 public void startActivityForResul.原创 2021-07-26 18:46:03 · 417 阅读 · 1 评论 -
Handler源码
从Handler入手 public Handler() { this(null, false); } public Handler(Callback callback, boolean async) { if (FIND_POTENTIAL_LEAKS) { final Class<? extends Handler> klass = getClass(); if ((klass.isAnonymou原创 2021-07-12 17:16:23 · 96 阅读 · 0 评论 -
setContentView流程
AppCompatActivity的方法实际是调用 先获取AppCompatDelegate委托类,最终调用AppCompatDelegateImplV9,只分析最常用的方法: 所有方法都用到了ensureSubDecor private void ensureSubDecor() { if (!mSubDecorInstalled) {//确保执行一次 mSubDecor = createSubDecor(); // If a title was set.原创 2021-06-23 17:56:09 · 226 阅读 · 2 评论 -
在Android Studio中进行单元测试和UI测试
本文基于TestDevTalk的文章,原文是基于AS旧版本的,现基于最新AS 2.1.3 功能进行了一些修改。转载 2016-09-04 11:03:33 · 459 阅读 · 0 评论 -
Android调试利器--Stetho
也许你已经习惯了使用Fiddle或者Charles来抓取网络包,使用各种插件和工具查看sqlite数据库,但是现在有了更好的调试工具,为什么不尝试一把提高效率呢?Stetho是一个复杂的Android应用程序调试桥。启用时,开发者可以通过Chrome桌面浏览器调试App。开发人员也可以选择启用dumpapp工具,一个强大的命令行界面应用程序内部构件。原创 2016-07-02 22:19:35 · 589 阅读 · 0 评论 -
Android逆向工程(一)-Apktool使用
当我们辛辛苦苦写的代码被别人抄走的时候一定会让我们非常的抓狂。要学会防守,我们也需要知道别人进攻的方式,接下来我们学习下如何破解Apk。Apktool是家喻户晓的逆向工具,我们学习下如何使用它。原创 2016-06-14 22:05:29 · 5712 阅读 · 3 评论 -
Android设计模式-模板方法模式
Android设计模式-模板方法模式原创 2016-06-12 23:37:08 · 280 阅读 · 0 评论 -
Android加载图片你必须知道的技巧
Android加载图片你必须知道的技巧原创 2016-05-31 14:35:14 · 6656 阅读 · 1 评论 -
利用代码扫描工具提升Android代码健壮性
Android代码健壮性原创 2016-05-30 21:43:27 · 2459 阅读 · 3 评论 -
Android 最佳性能实践之内存管理(二)
Android 最佳性能实践之内存管理原创 2016-05-29 21:22:11 · 473 阅读 · 0 评论 -
Android 最佳性能实践之内存管理(一)
Android 性能优化翻译 2016-05-29 10:57:12 · 490 阅读 · 0 评论 -
mipmap 和 drawable 区别与误区
mipmap和drawable区别原创 2016-05-27 14:31:55 · 7623 阅读 · 0 评论