2018年7月27日
摘要: 讲一个项目常见的功能,友盟统计功能 例如一个项目有很多多modlue,每个里面modlue都有Activity,Activity需要友盟统一,Fragment也需要友盟统计。一般做法就是继承一个BaseActivity,BaseFragment。 然后在BaseActivity,BaseFragme 阅读全文
posted @ 2018-07-27 18:06 mingfeng002 阅读(418) 评论(0) 推荐(0) 编辑
摘要: ViewModel 像Activity,Fragment这类应用组件都有自己的生命周期并且是被Android的Framework所管理的。Framework可能会根据用户的一些操作和设备的状态对Activity或者Fragment进行销毁和重构。作为开发者,这些行为我们是无法干预的。 所以Activ 阅读全文
posted @ 2018-07-27 18:05 mingfeng002 阅读(384) 评论(0) 推荐(0) 编辑
摘要: LiveData LiveData是一个用于持有数据并支持数据可被监听(观察)。和传统的观察者模式中的被观察者不一样,LiveData是一个生命周期感知组件,因此观察者可以指定某一个LifeCycle给LiveData,并对数据进行监听。 如果观察者指定LifeCycle处于Started或者RES 阅读全文
posted @ 2018-07-27 18:05 mingfeng002 阅读(422) 评论(0) 推荐(0) 编辑
摘要: Android官方架构组件介绍之LifeCycle 下面是官方提供的Android App开发的架构图: 从上图可以看到一些关键字:ViewModel,LiveData,Room等。其实看了上面视频的会发现Google官方Android架构组件一共包括以下几个: LifeCycle : 与Activ 阅读全文
posted @ 2018-07-27 18:04 mingfeng002 阅读(987) 评论(0) 推荐(0) 编辑
摘要: https://github.com/xroche/coffeecatch https://github.com/ivanarh/jndcrash https://github.com/mingfeng002/ndcrash https://zhuanlan.zhihu.com/p/27834417 阅读全文
posted @ 2018-07-27 17:24 mingfeng002 阅读(13395) 评论(2) 推荐(1) 编辑
摘要: ActivityStack.startPausingLocked() IApplicationThread.schudulePauseActivity() ActivityThread.sendMessage() ActivityThread.H.sendMessage(); ActivityThr 阅读全文
posted @ 2018-07-27 17:23 mingfeng002 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 实际场景分析 实际场景1: 应用内有两个Activity,A和B,A为第应用入口Activity,从A可跳转至B,A和B的启动模式都为standard 1)从Launcher程序第1次启动应用时的任务调度情况: 任务调度时会创建新task并将新的ActivityRecord加入这个新的task 2) 阅读全文
posted @ 2018-07-27 17:23 mingfeng002 阅读(1613) 评论(0) 推荐(0) 编辑
摘要: 从启动startActivity开始说起 Activity.java 调用startActivty实际上最后还是调用了startActivityForResult 方法 实际上调用的启动startActivityForResult方法的最终还是通过Instrumentation类来执行execSta 阅读全文
posted @ 2018-07-27 17:22 mingfeng002 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 接上篇 Instrumentation类execStartActivity(),ActivityManagerNative.getDefault().startActivy(),就是IActivityManager的代理对象ActivityManagerProxy 调用了startActivity方 阅读全文
posted @ 2018-07-27 17:22 mingfeng002 阅读(687) 评论(0) 推荐(0) 编辑