Android 源码解析
文章平均质量分 94
Android研发曹新雨
莫等闲,白了少年头,空悲切
展开
-
Android 应用Crash 后自动重启
方法1.通过AlarmManager public class CrashHandler implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread t, Throwable e) { //重启app /** * 这种方式 功能是可以达成 * 但是有问题就是如果说你的app挂了 这时候会显原创 2020-06-08 19:13:59 · 1396 阅读 · 0 评论 -
滴滴哆啦A梦源码解析
哆啦A梦是什么?1、DoraemonKit 能够快速让你的业务测试代码能够在这里统一管理,统一收口;2、DoraemonKit 内置很多常用的工具,避免重复实现,一次接入,你将会拥有强大的工具集合。项目地址;https://github.com/didi/DoraemonKit实现原理分析:Deleting the .gradle folder from the project fol...原创 2020-04-11 19:56:15 · 1713 阅读 · 2 评论 -
Glide 源码分析与面试提问
架构清晰:RequestManagerRequestBuilderRequestTracker问题:1.网络请求2.缓存3.内存泄漏?4.怎么区分加载网络和assert 下面的资源?5.架构上面有什么值得学习的地方?6.线程切换问题怎么处理?解析完之后,使用handler post 一个runnable private static final Executor MAIN...原创 2020-04-07 13:42:01 · 999 阅读 · 0 评论 -
Android Service、 BroadcastReceiver、ContentProvider ANR 原理详解
Service ANR:启动Service 的时候,会调用到ActiveServices 类的 realStartServiceLocked方法。 private final void realStartServiceLocked(ServiceRecord r, ProcessRecord app, boolean execInFg) throws Remote...原创 2020-03-31 08:55:39 · 1740 阅读 · 0 评论 -
DiskLruCache 源码解析
DiskLruCache 描述:DiskLruCache 是用来缓存一些数据,比如网络访问的Json,加载的图片等等。 LruCache是把数据缓存到内存中,而DisLruCache 是把数据缓存到设备里面。DiskLruCache 使用和LruCache 的一样的设计思想。参考LruCahce 的地址:https://blog.csdn.net/u013270444/article/de...原创 2020-03-30 21:11:21 · 478 阅读 · 0 评论 -
Android 利用源码调试 详解TouchEvent 事件分发机制
1.如果有触摸事件,首先会调用到Activity 的dispatchTouchEvent 方法。 public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUserInteraction(); ...原创 2019-04-16 00:32:12 · 1451 阅读 · 0 评论 -
解决: AOSP 编译AndroidQ preview 失败
FAILED: /media/caoxinyu/TomasYu/out-x86/Out_Q/soong/build.ninja/media/caoxinyu/TomasYu/out-x86/Out_Q/soong/.bootstrap/bin/soong_build -t -l /media/caoxinyu/TomasYu/out-x86/Out_Q/.module_paths/Android...原创 2019-03-27 13:51:55 · 5987 阅读 · 1 评论 -
(AOSP)repo checkout指定版本
To properly switch Android version, all you need to change is branch for your manifest repository. First determine the available branches with manifests for the different Android versions:cd $ANDROID...原创 2019-03-13 15:16:09 · 3311 阅读 · 0 评论 -
AOSP 设置编译输出目录
export OUT_DIR=/media/caoxinyu/TomasYu/out注意:export OUT_DIR=OUT_DIR 后面直接跟= ,不要有空格。否则报错。原创 2019-03-17 14:06:38 · 1452 阅读 · 0 评论 -
Android AOSP 单独编译某一模块
由于AOSP 项目太大,我只修改了一个模块,比如设置。那么只需要单独编译设置这个模块就可以了。首先执行Source:source build/envsetup.sh执行之后,就会有一些额外的命令可以使用: - croot: Changes directory to the top of the tree. - m: Makes from the top of the tree....原创 2019-03-03 22:52:03 · 3438 阅读 · 0 评论 -
Android Parcelable 源码解析
大家都知道,要想在Intent里面传递一些非基本类型的数据,有两种方式,一种实现Parcelable,另一种是实现Serializable接口。今天先不说Serializable 接口,只说Parcelable。我们知道,Parcelable 只是一个接口,里面有几个关键方法:writeToParcel /** * Flatten this object in to a Pa...原创 2019-02-27 11:41:54 · 1128 阅读 · 0 评论 -
Ubentu编译Android源码(AOSP)
前言:一直想要编译一下Android 源码,之前去google 看,下载要下载repo。当时很懵逼,repo 是个什么? 然后往下看,看到往上说,编译Android AOSP 只能用Ubuntu,当时自己的心也哇哇凉啊。自己只有一个工作的电脑,自己的电脑配置太低。 看网上说,还要200G 的空间。之前自己给自己的windos 安装过双系统,但是好像一直启动不了。现在想想,应该是因为当时没有...原创 2019-03-03 17:02:29 · 1545 阅读 · 2 评论 -
Android AOSP 编译sdk
首先你要有AOSP 工程。然后执行下面的命令编译sdk。//运行下面的命令得到编译环境source build/envsetup.shlunch sdkmake sdk最后文件输出在哪个位置会在命令行输出,如下:[100% 6804/6804] Package SDK: out/host/linux-x86/sdk/sdk/android-sdk_eng.caoxiny...原创 2019-03-05 10:47:01 · 942 阅读 · 0 评论 -
android 8.0 Account行为变更 账号系统
我们有个方法,是判断体统的账号有没有登录。public static boolean isAccountLogin(Context context) { String df = "com.z**; AccountManager accountManager = AccountManager.get(context); try { ...原创 2019-02-27 14:38:58 · 1259 阅读 · 0 评论