自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Android Binder之native层解析

1 前言Binder是Android系统中提供的一种进程间通信方式,Android是基于Linux内核的,除了Binder外,还有其他的进程间通信方式,可以参考笔者之前的文章,Linux自带多种进程间IPC,为什么Google却用Binder作为Android主要的进程间IPC?。对我们好多开发者来讲,最难也最想掌握的恐怕就是Binder了,Android整个系统可以看作一个基于Binde...

2019-09-01 22:29:34 520

原创 Linux自带多种进程间IPC,为什么Google却用Binder作为Android主要的进程间IPC?

前言作为一名Android开发者,想必大家都知道Android是基于Linux内核的!在Linux中,进程间通信有如下几种方式,管道、消息队列、共享内存、信号量、信号、Socket,但是Android却用Binder作为主要的进程间通信方式,这是为什么呢?下面让我们来分析下。1 管道管道是Linux一种常见的进程间通信方式,也是Linux最古老的一种进程间通信方式,管道分为匿名管道(PIPE...

2019-08-21 22:14:29 387

原创 Android 系统启动流程(三)SystemServer启动流程

前言在Android 系统启动流程(二) zygote启动流程这片文章中,我们学习了Zygote的启动过程,并且知道 Zygote创建并启动了SystemServer,这篇文章我们来学习下SystemServer的启动过程。1 Zygote启动SystemServerframeworks\base\core\java\com\android\internal\os\ZygoteInit.ja...

2019-07-26 12:11:57 475

原创 Android 系统启动流程(二) zygote启动流程

前言在Android 系统启动流程(一) init进程启动过程这篇文章中我们知道Zygote是由init进程解析init.rc文件而创建的,它所对应的可执行文件是/system/bin/app_process,对应的源码文件是frameworks\base\cmds\app_process\app_main.cpp。在Android系统中,DVM(Dalivk虚拟机),应用程序进程以及运行系统关...

2019-07-23 12:25:23 436

原创 Android 系统启动流程(一) init进程启动过程

1. 概述init进程是Linux系统中用户空间的第一个进程。由于Android是基于Linux内核的,所以init进程也是Android系统中用户空间的第一个进程,它的进程号是1,作为天字一号进程,它被赋予很多重要的职责,但本次我们就关注它的2个重要职责:init进程如何创建zygote进程、init进程如何初始化并启动属性服务。2. init启动之前的工作当按下Power键,引导芯片加载...

2019-07-16 12:38:24 1108

原创 Android init.rc解析

1.简述:Android init.rc文件由用户空间的第一个进程init解析,主要包含五种语句: Actions,Commands,Services,Options,Imports; 在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得使用转义字符"",如果在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来处理,这样做...

2019-07-12 13:55:35 478

原创 MTK(Android N)设置SDCard为默认存储

思路:当系统将所有存储挂载完毕,然后调用StorageManagerEx.setDefaultPath(path)设置默认存储,当用户手动改变以后就跟随用户设置。

2017-08-23 16:44:05 1488

原创 MTK 7.0 下拉状态栏左上角添加运营商显示

MTK 7.0 下拉状态栏左上角添加运营商显示

2017-08-11 15:24:08 1199

原创 Parcelable 和 Serializable 的区别

一、 什么叫序列化?为什么要进行序列化?怎么进行序列化?1: 什么叫序列化? 序列化:将一个对象转换成可存储或者可传输的状态。序列化后的对象可以在网络上进行传输或者存储到本地。 2: 为什么要进行序列化?在进行Android开发的时候,无法将对象的引用传递给Activity或者Fragments,我们需要将这些对象放到一个Intent 或者Bundle里面,然后在传递。 3: 怎么

2016-11-29 17:29:50 595 1

原创 Android 6.0(M) BatteryService浅析及充电呼吸灯流程浅析 MTK

Android 6.0(M) BatteryService浅析及充电呼吸灯流程浅析

2016-11-15 16:44:15 4552

转载 Java AtomicInteger

AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。来看AtomicInteger提供的接口。//获取当前的值public final int get()//取当前的值,并设置新的值 public f

2016-11-15 11:01:54 308

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除