AOSP总结 AOSP看分析文章,看源码,调试源码,自己实现,是四个完全不同的层级,每一级对源码的理解都不一样Android Open Source Project 引用: Android Frameworkhttps://github.com/yuandaimaahao/AndroidFrameworkTutorial使用 Android Studio 开发系统 App系统开发专用版 Android S 2024-04-06 AOSP
adb快捷键 代理 123adb shell settings put global http_proxy :0adb shell settings put global http_proxy 10.14.164.31:9090 不能断点时 12adb kill-serveradb start-server 查看当前页面 1adb shell dumpsys activity top | grep &qu 2024-04-06 AOSP
网络库源码 网络框架比较 在Android 2.3版本及以后,HttpClientHttpURLConnection则是最佳的选择,HttpURLConnection的API提供的比较简单,可以更加容易地去使用和扩展它。而且速度快、节省电量。内部也改成了OkHttp OkHttp 处理了很多网络问题:自动重连、会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,O 2024-04-06 源码
第三方框架源码 LeakCanary 原理 lifecycleCallbacks 监听 Activity,onActivity Destroyed 方法最终会调用 RefWatcher. watch 方法:: 通过将 Activity 包装到 WeakReference(弱引用)中,弱引⽤在引⽤对象被垃圾回收之前,会将引⽤放⼊它关联的队列中。所以可以通过队列中是否有对应的引⽤来判断对象是否被垃圾回收了。(有的话被 2024-04-06 源码
数据存储 SharedPreferences基本使用1234SharedPreferences sharedPreferences = this.getSharedPreferences(getLocalClassName(), MODE_PRIVATE);SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString( 2024-04-06 源码
ThreadLocal 总结默认成员变量是共享的 简单说 ThreadLocal 就是一种以空间换时间的做法,在每个 Thread 里面维护了一个 ThreadLocalMap,而这个 map 的 key 就是 Threadlocal,值就是我们 set 的那个值,每次线程在 get 的时候,都从自己的变量中取值,既然从自己的变量中取值,所以不会影响其他线程。在这个线程是独享的,也没有线程安全方面的问题。 通过它可以在 2024-04-06 源码
SparseArray 和 ArrayMap ArrayMapAndroid 专门针对内存优化而设计的,用于取代 Java API 中的 HashMap 数据结构。为了更进一步优化key 是 int 类型的 Map,Android 再次提供效率更高的数据结构 SparseArray,可避免自动装箱过程。对于 key 为其他类型则可使用 ArrayMap。HashMap 的查找和插入时间复杂度为 O (1)的代价是牺牲大量的内存来实现的,而 S 2024-04-06 源码
Serializable 与 Parcelable 序列化序列化的三种场景: 持久化存储 通过 Socket 进行网络传输 深拷贝 把数据对象(⼀般是内存中的,例如 JVM 中的对象)转换成字节序列的过程。对象在程序内存⾥的存放形式是散乱的(存放在不同的内存区域、并且由引⽤进⾏连接),通过序列化可以把内存中的对象转换成⼀个字节序列,从⽽使⽤ byte[] 等形式进⾏本地存储或⽹络传输,在需要的时候重新组装(反序列化)来使⽤。把内存中的对象变成二 2024-04-06 源码
IdleHandler 源码当 MessageQueue 没有消息的时候,就会阻塞在 next 方法中,其实在阻塞之前,MessageQueue 还会做一件事,就是检查是否存在 IdleHandler,如果有,就会去执行它的 queueIdle 方法。 1234567891011121314151617181920212223242526272829303132333435363738394041 private Id 2024-04-06 源码
HashMap、lru、散列表 HashMapHash:从数据中提出摘要信息,数字指纹,验证唯一性,完整性。 HashMap 的数据结构:HashMap 实际上是一个数组和链表(“链表散列”)的数据结构。底层就是一个数组结构,数组中的每一项又是一个链表。 entry 每个元素 通过 hashCode 来算出指定数组的索引可以快速定位到要找的对象在数组中的位置,之后再遍历链表找到对应值,理想情况下时间复杂度为 O(1) 不同对 2024-04-06 源码