android
就不呵呵呵
Don't be a coder but a thinker
展开
-
记录 AOSP 编译遇到的各种报错及解决方式
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rspOut of memory error (version 1.2-rc4 ‘Carnac’ (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).GC overhead limit ex原创 2020-06-29 08:23:01 · 3441 阅读 · 0 评论 -
Handler 源码解析
这篇文章是跟踪源码看handler是如何发消息的。从sendMessage(Message msg)开始吧 public final boolean sendMessage(Message msg) { return sendMessageDelayed(msg, 0); }点入看看 public final boolean sendMe...原创 2018-03-21 08:15:33 · 265 阅读 · 0 评论 -
AIDL文件生成的java文件内容分析
先上流程图我们先来看看编写的aidl文件编译器为我们自动生成的.java类都有哪些元素分别代表什么意思 DESCRIPTORBinder的唯一标识,一般用当前Binder的类名表示,比如本例中的"test.sym.com.myapplication.IBookManager" asInterface(android.os.IBinder obj)用于将...原创 2018-04-15 19:10:36 · 1576 阅读 · 1 评论 -
AIDL使用注意事项总结
这里仅仅记录在使用AIDL的时候我们有哪些是要注意的 在UI线程执行AIDL方法引起的anr客户端调用远程服务的方法,被调用的方法在服务端的Binder线程池中,同时客户端线程也会被挂起,这个时候如果服务端方法执行比较耗时的操作,就会导致客户端线程长时间阻塞在这里,而如果这个客户端线程是UI线程的话,就会导致客户端ANR。避免方法: 1. 不要在onServiceConnect...原创 2018-04-15 21:39:12 · 1474 阅读 · 0 评论 -
Messenger源码解析
简述:Messenger是一种轻量级的IPC方案,它的底层实现是AIDl,也就是说它是系统对AIDL的一个简单封装方便Android开发人员进行进程间通信,它一次只能处理一个请求,因此在服务端不用考虑线程同步问题,因为在服务端不存在并发执行的情况。接下来进入正题开始源码解析 构造函数 Messenger 存在两个构造函数 分别是 //1. 传递处理请求的Han...原创 2018-04-16 10:21:09 · 363 阅读 · 0 评论 -
外观模式浅析
外观模式是我们封装API的常用手段,比如在我们开发各种SDk的时候。 外观模式定义: 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,外观模式提供一个高层次的接口,使得子系统更加易于使用UML图: 实例代码实现 系统A定义public interface ISystemA { /** * 系统A的一些内部操作 */...原创 2018-04-05 14:41:53 · 227 阅读 · 0 评论 -
OnePlus6 刷机+root + 安装busybox教程
准备工作: 1.下载trwp 第三方recovery工具包 2. 下载第三方rom 百度网盘地址 密码: y5e4 3. 下载Magisk root工具 4 下载busybox 字节码文件 进行刷机进入到bootloader 模式 adb reboot bootloader 进入bootloader模式后可以使用 fastboot devices 命令检查当前链接的...原创 2018-06-23 10:51:43 · 3906 阅读 · 0 评论 -
Atlas 源码解析(二)
总结:Atlas hook Resource流程 1.在软件启动的时候hook系统的Resource对象 2. 调用Resource 对象的getAssets()方法获取AssetManager对象(暂时称为旧的的as对象) 3. 通过反射创建一个新的AssetManager对象(暂时称为新的的as对象) 4. 将bundle的资源路径加入到新的AssetManager对象中 5. 对旧...原创 2018-03-20 14:09:14 · 1940 阅读 · 0 评论 -
Android进阶之IntentService 源码解析
先来介绍下intentService和Service的区别IntentService继承与Service与Service有着相同的生命周期和方法,区别就在于IntentService是google工程师看到我们经常在Service里面做一些耗时的操作就帮我们封装一下,如果不封装自己使用Service+Thread+Handler或者Service + HandlerThread也能实现。也就是...原创 2018-03-18 11:36:43 · 361 阅读 · 0 评论 -
AMS 启动过程
SystemServer.java /** * The main entry point from zygote. */ public static void main(String[] args) { new SystemServer().run(); }创建SystemServer对象运行run()方法,点入run() 方法...原创 2018-03-17 15:13:12 · 550 阅读 · 0 评论 -
Android——华为虚拟键盘EditText被顶起
bug描述:EditText获得焦点后键盘被吊起,但是EditText没有在虚拟键盘的顶端,而是被顶起了一个虚拟键盘的高度如下图所示:解决办法:在布局文件中写成EditText被双ViewGroup包裹例如:<ReleateLayout> <ReleateLayout> <EditText/> </ReleateLayout></ReleateLayout>在<A原创 2017-02-22 14:44:51 · 2548 阅读 · 0 评论 -
Android 源码解析
废话不多说直接上github的地址 Android源码解析原创 2017-03-12 09:21:01 · 461 阅读 · 0 评论 -
React-native 问题汇总
问题一:Application HelloWorld_o1 has not been registered.Hint: This error often happens when you're running the packager (local dev server) from a wrong folder. For example you have multiple apps and the原创 2017-04-09 11:06:16 · 3724 阅读 · 4 评论 -
React-native 学习笔记二
模块(module)ES5不支持原生的模块化,在ES6中,模块将作为重要的组成部分被添加进来。模块的功能主要由 export 和 import 组成。每一个模块都有自己单独的作用域,模块之间的相互调用关系是通过 export 来规定模块对外暴露的接口,通过import来引用其它模块提供的接口。同时还为模块创造了命名空间,防止函数的命名冲突原创 2017-04-12 11:48:19 · 370 阅读 · 0 评论 -
TabLayout 与ViewPager 搭配tab内容不显示问题
遇到这个问题请在setupWithViewPager 之后在给每个tab设置内容不然会被重置 viewPager.setAdapter(pagerAdapter); tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setupWithViewPager(viewPager); tab原创 2017-04-12 15:43:14 · 1926 阅读 · 0 评论 -
编写android 注解解释器
编写android 注解解释器(apt)步骤:1. 编写注解文件2. 写注解解释器,编译时生成注解文件3. 运行时通过反射调用注解生成的类和方法原创 2017-05-11 10:52:29 · 703 阅读 · 0 评论 -
自定义dialog
概要继承 android的Dialog类在onCreate方法中设置自定义的dialog的内容.如果想要修改dialog的一些特性(比如:宽高、内容颜色等,要在show()调用后再修改)原创 2017-05-13 10:13:11 · 353 阅读 · 0 评论 -
零碎知识点
知识点一:picasso的像素点比较高原创 2017-03-07 13:57:35 · 349 阅读 · 0 评论 -
GitHub上好用的开源库
廖子尧okhttp-OkGoOkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持RxJava,比Retrofit更简单易用。该库是封装了okhttp的标准RESTful风格的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持超时自动重连,支持cookie的持久化和自动管理,支持原创 2017-03-13 16:45:33 · 675 阅读 · 0 评论 -
Android 进阶之HandlerThread
官方描述: Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called. 翻译:大致意思是HandlerThread能够新建拥有L...原创 2018-03-16 09:27:28 · 508 阅读 · 0 评论 -
Atlas 源码解析(一)
简述:这篇文章仅仅介绍atlas的基本实现原理。这是atals中bundle加载过程包括class 和 resource第15步: if(!installingBundles.containsKey(location) && ((bundleDir!=null&&bundleDir.exists()) || dexPatchDir!=null...原创 2018-03-16 10:39:30 · 4768 阅读 · 0 评论 -
项目常用开源库
Android-ConvenientBanner通用的广告栏控件,让你轻松实现广告头效果。支持无限循环,可以设置自动翻页和时间(而且非常智能,手指触碰则暂停翻页,离开自动开始翻页。你也可以设置在界面onPause的时候不进行自动翻页,onResume之后继续自动翻页),并且提供多种翻页特效。 对比其他广告栏控件,大多都需要对源码进行改动才能加载网络图片,或者帮你集成不是你所需要的图片缓存库。而这个库原创 2017-03-01 15:24:41 · 333 阅读 · 0 评论