2020年3月19日
摘要:
一、概述 什么是App的打包流程? 答:App的打包流程是指通过把资源(图片、文本)、源代码等资源打包成一个apk的过程。 了解打包流程能干什么事情? 通过了解打包流程我们可以对app打包的过程进行干涉,例如:1.在热更新项目中我们可以干涉R.java中资源id的生成来防止宿主App和插件App资源
阅读全文
posted @ 2020-03-19 16:42
飘杨......
阅读(2173)
推荐(0)
2020年3月16日
摘要:
一、概述 Android的消息机制是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。我们在开发中使用Handler一般是切换线程更新UI等操作。因为Android规范规定Android只能在主线程中更新UI,这一点可以在ViewRootIml的
阅读全文
posted @ 2020-03-16 23:09
飘杨......
阅读(471)
推荐(0)
摘要:
一、概述 简单点来说ThreadLocal其实是一个数据存储类,通过get(),和set(key)来实现对数据的存取。并且可以在指定的线程中存储取数据,而在这个线程中存储的数据对于其他线程是访问不到的。 什么情况下比较适合使用ThreadLocal来存取数据? 答:当数据的作用域是线程或者不同的线程
阅读全文
posted @ 2020-03-16 12:29
飘杨......
阅读(195)
推荐(0)
2020年3月15日
摘要:
一、概述 本节介绍一下so的加载原理,促使我写这个小节的原因有两点: 1.可以在给App瘦身的时候提供参考依据 2.可以给so插件化提供参考依据 下面就开始看so的加载原理吧。 二、so加载原理分析 2.1.so的编译类型 在Android中只支持三种CPU架构:x86体系、mips体系、arm体系
阅读全文
posted @ 2020-03-15 21:54
飘杨......
阅读(1455)
推荐(0)
摘要:
一、概述 HashMap这个类不管是Java开发还是Android开发都会经常用到,当有数据需要通过键值对的形式存储的时候,使用Map会非常的方便。为什么要学习HashMap的原理呢?其中有两点原因: 1.通过对HashMap原理的学习,可以修炼开发者的内功,因为一旦理解的HashMap等于把数据结
阅读全文
posted @ 2020-03-15 17:02
飘杨......
阅读(1617)
推荐(0)
2020年3月14日
摘要:
一、概述 TCP的三次握手和四次挥手是一个老生长谈的问题,当然也是在面试中被问到的一个大概率的问题。之所以被经常问到是因为这个知识点是可以区别初级、中级、高级开发者的一个分水岭,可以达到筛选应聘者的目的。另外原因是公司可能真的会用到这方面的内容,例如:有些时候我们会选用websocket作为数据传输
阅读全文
posted @ 2020-03-14 16:37
飘杨......
阅读(398)
推荐(0)
2020年3月12日
摘要:
一、概述 相信绝大多数Android开发都用过ButterKnife这个框架,因为其老牌且知名。其通过注解来绑定视图,把开发从烦琐的findViewById中解放出来。 ButterKnife有两种实现形式: 1.使用注解编译器来实现,其结果就是编译略微耗时,但其运行基本无损。 2.完全使用反射来实
阅读全文
posted @ 2020-03-12 22:08
飘杨......
阅读(1343)
推荐(0)
摘要:
一、概述 Service是Android的四大组件之一,我们可以利用它开启一个后台服务,Service的优先级比较高,一旦其在后台运行即使App处于后台则Service运行的任务也不容易被杀死。了解Service的工作原来除了可以加深对底层的Service机制的理解以外还可以为当前比较流行的热更新做
阅读全文
posted @ 2020-03-12 11:15
飘杨......
阅读(1333)
推荐(0)
2020年3月11日
摘要:
一、概述 众所周知Android中可以使用线程池来管理线程,有非常多的框架一旦涉及到多线程都会优先采用线程池来处理线程,例如:EventBus、Retrofit2、RxJava、OkHttp等框架。那么Android为什么能使用线程池呢?其实这源于Java的java.util.cuncurrent包
阅读全文
posted @ 2020-03-11 20:17
飘杨......
阅读(424)
推荐(0)
摘要:
一、概述 在上一节分析了EventBus的源代码。本节仿照EventBus自己做一个事件总线框架,去掉了一些代码,只保留了核心框架,旨在梳理框架的框架原理,加深对框架流程的理解。 在贴出源代码之前先把这个自定义的EventBus的功能介绍一下。核心流程还是三个,注册、发布、取消注册(未写Annota
阅读全文
posted @ 2020-03-11 16:57
飘杨......
阅读(432)
推荐(0)