Android进阶
aphrodite1314
爱编程的菜鸟
展开
-
源码分析之——Application初始化流程
前言犹豫了好久想写一篇关于AMS启动流程的文章,也做了很多准备看了很多的源码。但怕自己理解的不全面,迟迟没敢下手。对于Android的小伙伴来说,大家或多或少的都会了解一点ActivityManagerService,简称AMS。那么废话不多说,下面我将针对AMS启动做一个简单的介绍。以Android10.0 aosp为基础进行梳理。谨以此记录下学习流程,欢迎广大博友交流指正。是时候提高一波了。。。启动流程...原创 2022-01-25 14:52:58 · 1859 阅读 · 0 评论 -
Activity生命周期
原创 2021-09-27 14:34:03 · 73 阅读 · 0 评论 -
源码分析之——Activity四大启动模式
1.源码分析之——AMS启动流程2.源码分析之——WMS启动流程3.源码分析之——SharedPreferences4.源码分析之——Retrofit5.源码分析之——OKHttp6.源码分析之——Android事件分发机制前言基于源码,简单分析下Activity四大启动模式。简介安卓四大组件之一Activity有四种启动模式,分别为:1.standard 标准模式,每次都会新建一个实例对象;2.singleTop 如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶;3.si原创 2021-01-07 16:27:23 · 205 阅读 · 1 评论 -
源码分析之——Handler解析
1.源码分析之——AMS启动流程2.源码分析之——WMS启动流程3.源码分析之——SharedPreferences4.源码分析之——Retrofit5.源码分析之——OKHttp6.源码分析之——Android事件分发机制前言基于源码,简单分析下Handler机制。流程图作用简单来说就是线程间通信。比如说有一个耗时操作,当其完成后需要更新UI页面,这时候就可以考虑使用Handler了。使用 Looper.prepare(); Handler han原创 2020-12-29 16:44:10 · 104 阅读 · 0 评论 -
源码分析之——Android事件分发机制
1.源码分析之——AMS启动流程2.源码分析之——WMS启动流程3.源码分析之——SharedPreferences4.源码分析之——Retrofit5.源码分析之——OKHttp前言基于源码,简单分析下Android事件分发机制。流程图源码分析下面将从源码角度对以上流程进行分析。做过Android开发的同学对于几大布局应该都很熟悉,像LinearLayout,RelativeLayout,FrameLayout,CoordinatorLayout等等。细心的同学就会发现这些布局全部原创 2020-12-21 18:07:30 · 180 阅读 · 0 评论 -
Only the original thread that created a view hierarchy can touch its views
背景:今天项目中遇到一个奇葩问题,给NestedScrollView子view1,view2设置 GONE属性的时候,发现留下了两个空白区域(如下图所示)。我们都知道view的GONE属性是会把整个区域都会给隐藏掉的呀,一头雾水,why?分析:绞尽脑汁。。。没办法只能一步一步debug,尝试不断复现此问题,然后抓log,说来也巧被我抓住了一些蛛丝马迹。2020-12-08 14:35:55.275 15880-15898/? W/System.err: android.view.ViewRootI原创 2020-12-08 16:20:06 · 249 阅读 · 0 评论 -
源码分析之——OKHttp
1.源码分析之——Retrofit前言基于源码,简单分析下OKHttp工作流程。流程图OKHttp基本使用在 gradle 中添加依赖implementation 'com.squareup.okhttp3:okhttp:3.14.9'1.首先创建OkHttpClient对象OkHttpClient client = new OkHttpClient();2.构造Request对象Request request = new Request.Builder()原创 2020-12-02 15:55:01 · 180 阅读 · 2 评论 -
源码分析之——Retrofit
前言基于源码,简单分析下Retrofit工作流程。流程图源码分析下面将从Retrofit的创建到发送一个异步请求再到callback这一流程进行分析。Retrofit使用建造者模式进行创建,因此让我们从Builder开启源码分析之旅吧。注意:为了精简内容,部分不在分析之内的代码已省略,如果想深入学习的同学请查看详细源码Retrofit源码 public Retrofit build() { if (baseUrl == null) { throw new Ill.原创 2020-11-24 17:46:13 · 126 阅读 · 0 评论 -
栈内存溢出: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
项目场景:Android APP开发问题描述:华为Mate40手机上莫名其妙的闪退。Log如下:11-10 18:05:17.671 31217 31217 E AndroidRuntime: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again11-10 18:05:17.671 31217 31217 E AndroidRuntime: at java.lang.Thread.native.原创 2020-11-20 14:19:45 · 706 阅读 · 0 评论 -
源码分析之——SharedPreferences
前言前几篇文章主要讲了安卓四大组件之Activity。最近在coding的时候又遇到一个问题:自己项目中有两个Activity分别命名为Activity1和Activity2,而Activity1属于process1,Activity2属于process2,从Activity1跳转到Activity2,然后在Activity2中通过使用SharedPreferences进行保存简单的数据,结果不...原创 2020-03-12 11:30:48 · 203 阅读 · 0 评论