Android高级开发
文章平均质量分 82
Android高级开发会设计到Framework的详细介绍,主要通过Android源码的设计思路来解析目前我们经常用的知识点。
通过这一专栏,你将在Android开发中有一个全新的高度!
andboby
当前在某世界五百强上市公司担任技术总监及其首席架构师,曾经供职于中兴通讯股份有限公司,担任系统架构师一职;曾经2011年~2017年供职金山软件,从事移动WPS的开发,是android版的WPS核心开发人员,欢迎各位一起学校交流!
展开
-
MVC 、MVP详解 及其 MVC 在安卓系统中的具体应用
MVC框架MVC是将业务逻辑、界面进行解耦,通过中间的Control对界面数据和操作进行处理,然后将处理结果反馈给业务逻辑层也就是Modle。Modle:业务逻辑层,本层是应用数据的核心,例如数据库和表View:视图层,其是接收用户操作 和对model数据的展示。Control:控制器,接收用户输入和操作,例如增删改成数据库,然后将操作数据录入model。MVC虽然通过control...原创 2018-04-24 17:51:46 · 168 阅读 · 0 评论 -
Android项目混淆ProGuard详解
Android项目混淆ProGuard详解原创 2017-05-22 19:40:17 · 539 阅读 · 0 评论 -
AIDL详解之AIDL基础
本技术博文计划分为三个系列: 一、AIDL的基础。 二、AIDL之Messenger. 三、AIDL终极篇之AIDL架构设计。一,AIDL的本质可以从以下来理解。 1、AIDL专门为android中的跨进程通讯设计。通过以下对其他跨进程通讯的几种方式的弱点来解析AIDL的优点。ContentProvider、Broadcast 这两种底层也是通过IBinder来实现,其使用范围为系统级的(重原创 2017-11-22 11:48:02 · 530 阅读 · 0 评论 -
AIDL详解之Messenger
本技术博文计划分为三个系列: 一、AIDL的基础,http://blog.csdn.net/wangqiubo2010/article/details/78601666。 二、AIDL之Messenger.。 三、AIDL终极篇之AIDL架构设计。本博文是AIDL系列的第二篇,Messenger。 Messenger的本质,只要记住以下三点即可。 1、Messenger内部已经封装好,原创 2017-11-23 15:10:05 · 339 阅读 · 0 评论 -
AIDL终极篇之AIDL架构设计
本技术博文计划分为三个系列: 一、AIDL的基础,http://blog.csdn.net/wangqiubo2010/article/details/78601666。 二、AIDL之Messenger,http://blog.csdn.net/wangqiubo2010/article/details/78615047.。 三、AIDL终极篇之AIDL架构设计。本文为AIDL设计的终原创 2017-11-24 16:22:53 · 653 阅读 · 0 评论 -
Handler运行机制详解
1、android线程间的通讯,都是经过Handler在线程之间的切换。包括耗时任务的结果传送到UI线程等。2、Handler使用包括2种形式,一种是主线程和子线程的交互,另外一种是子线程和子线程之间的交互。3、Handler的创建,主线传入Looper.getMainLooper;如果是在子线程中创建,则需要在Looper.prepare(); 和 Loop.loop之间创建,否则会抛出...原创 2018-04-21 21:48:34 · 567 阅读 · 0 评论 -
JAVA虚拟机JVM详解
JVM的特点:JAVA是跨平台的,原因就是JAVA代码经过编译器编译成.CLASS文件,也就是字节码,字节码经过JVM的JIT编译成机器码,机器码不分平台,可以跑在不同平台上,因此JAVA实现了跨平台。JVM的物理结构如下: 通过以上图可以知道JVM的物理结构分为 类记载器、方法区、JAVA堆、JAVA栈、本地方法栈及其程序计数器。类加载器即是CLASSLOADER加载过程如下图...原创 2018-03-26 16:39:24 · 397 阅读 · 0 评论 -
JAVA的GC详解
转接地址:http://blog.csdn.net/d6619309/article/details/53358250转载 2018-03-18 01:38:56 · 176 阅读 · 0 评论 -
JVM、Dalvik、ART 3中虚拟机的区别
JVM是JAVA的虚拟机,基于栈的, JVM将JAVA代码编码成.class类型文件。Dalvik是android的虚拟机,Dalvik是基于寄存器的,速度回更快,并且Dalvik把代码编译成.dex文件,本类型文件更适合与于手机。Dalvik是JIT(即时编译),因此每次启动运行程序,Dalvik才会把字节码转换成机器码。因此因为存在这种转换,相对于ART,会更慢、消耗内存、消耗电池。A...原创 2018-03-16 23:51:33 · 175 阅读 · 0 评论 -
Android内存管理
本部分将分两部分来讲解。1、android 内存回收机制,即采用了 Low Memory Killer。2、正对Low Memory Killer回收机制,那么应用程序需要在 onLowMemory 和 onTrimMemory 方法中怎么处理,来降低系统对APP进程的回收率。第二步;MIUI、华为等非原生系统,第三方软件等,将APP杀死之后,APP的重启方式。 详见:https:/...原创 2018-04-24 17:49:14 · 465 阅读 · 0 评论 -
Volley 详解之学到的不仅仅是volley
Volley是谷歌提供的网络访问框架,具体优缺点如下。 volley优势: 1. volley 存在2类线程,缓存线程 和 网络访问线程,默认会开取 1个缓存线程、4个网络访问线程。 2. volley 通过 采用 diskCache(磁盘缓存) + 内存缓存(缓存header信息) + 网络访问数据加载(ByteArrayPool 存放了网络请求的数据,放在内存)。 3. voll...原创 2018-08-08 11:52:53 · 414 阅读 · 0 评论 -
AsyncTask原理详解!
在项目中子线程和UI线程交互过程中,经常会用到AsyncTask,AsyncTask使用场景有网络访问、上传文件等。AsyncTask的核心原理有以下几条,请配合后面详解来理解。 1、 AsyncTask主要使用的4个函数,onPreExecute、doInBackground、 onProgressUpdate、onPostExecute。 2、onPreExecute是在AsyncTa...原创 2017-09-05 18:00:14 · 1632 阅读 · 0 评论 -
android核心组件之BroadReceiver(广播)
BroadReceiver 为系统级的(重量级)的跨进程通讯机制;例如:广播短信,收到本广播的可以进行处理。BroadReceiver 分为静态广播 和动态广播。 a、动态广播的优点,其一,动态广播的生命周期是和其宿主的生命周期是一致的,例如Acitivity创建的时候注册,destroy的时候注销,节省内存资源。而静态广播当应用程序启动之后就注册了,注册之后和APP的进程是否存活无关,例...原创 2018-03-16 23:17:50 · 951 阅读 · 0 评论 -
okhttp详解之连接池
本文,主要分析以下几个问题:连接池ConnectionPool的定义及其详解。连接connect复用详解。connet清理。访问同一个地址的socket复用详解。.服务器重新定位, 包括IP地址重新定位、代理proxy重新定位。也就是如果当集群服务器存在多个代理,代理存在多个IP地址,那么访问一个IP地址失败的话,那么重新定位到另外一台服务器。一套了解以上okhttp的特点,需...原创 2018-11-22 10:54:58 · 2766 阅读 · 0 评论 -
okhttp之 header详解
Http 的请求 和 应答包括 header部分 和body部分,以下对header部分进行详解,仅供参考。Request的header注释:Header注释示例Accept指定客户端能够接收的内容类型Accept: text/plain, text/htmlAccept-Charset浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5...原创 2018-05-09 10:12:47 · 9231 阅读 · 0 评论