Vane's Blog

深入理解Android相机体系结构(非原创)

1. 概述 Android系统自2007年底被Google推出问世以来,已经走过13个春夏秋冬,历经多次的大大小小的迭代重构、架构调整,虽然时代年轮依旧滚滚,虽然每年技术依然在不断地推陈出新,但是到目前为止,依然可以窥见其接口与实现相分离的核心设计理念,所以其架构设计的优越性可见一斑,另外,随着智能手机的快速普及,面对这一庞大终端市场,作为系统中最重要的几个组件之一的相机系统也必定会作为主...

MacBooK pro编译Android 9.0和Android 11源码

当前设备环境 操作系统:macOS Mojave 10.14.6 手机:谷歌手机Pixel Pixel 3 XL 下载源码版本:android-9.0.0_r46 android-11.0.0_r17 创建磁盘映像 由于mac系统文件系统是大小写不敏感的系统,所以需要在mac中创建一个支持大小写敏感的文件系统。 创建分区 安卓9.0编译后比较大,笔者编译...

Activity启动耗时统计方案(非原创)

1. 概述 Activity的启动速度是很多开发者关心的问题,当页面跳转耗时过长时,App 就会给人一种非常笨重的感觉。在遇到某个页面启动过慢的时候,开发的第一直觉一般是 onCreate 执行速度太慢了,然后在 onCreate 方法前后记录下时间戳计算出耗时。不过有时候即使把 onCreate 方法的耗时优化了,效果仍旧不明显。实际上影响到 Activity 启动速度的原因是多方面的,...

Android系统预置APP

本文主要介绍了如何在Android系统源码上预置APP,包括无源码APP和有源码APP两种情况。 1. 概述 Android 系统预置 APP 分为两种,一种是直接预置 APK,一种是预置带有源码的 APP。 2. 预置 APK 以 AppDemo.apk 示例,在 vendor 目录下创建文件夹apk,然后在apk目录下新建名为 AppDemo的文件(一般第三方apk最好...

Android Studio使用系统隐藏API的方法

本文主要介绍了如何使用 Android Studio 进行App开发时调用 Android 的 internal API 和 hidden API,同时也介绍如何在Android Studio 进行App开发时调用定制的Android 系统的API。 1. 概述 Android Studio 是Google基于 IntelliJ IDEA 且适用于开发 Android 应用的官方...

Binder十万个为什么

以提问的方式探讨 Android 中 Binder 机制。 1. 概述 大家都知道Binder是一种进程间通信机制, 在 Linux 中,Binder 被看做一个字符设备,Binder 驱动会为每个打开 Binder的进程在内核里分配一块地址空间,Client 向 Server 传递数据,其实就是将数据写道内核空间中 Server 的地址里面,然后通知Server去取数据。原理其...

Android添加系统服务访问驱动程序系列:添加framework层服务

基于Android 6.0源码,基于实操在Android系统中如何添加一个framework层的服务访问驱动程序。 1. 概述 在Android添加系统服务访问驱动程序系列:添加HAL层中我们为 驱动 mychar 是实现一个HAL层模块 operatechar。开发好 HAL 层模块后,我们需要在framework 层实现一个硬件访问服务 operate_char。硬件访问服务...

Android添加系统服务访问驱动程序系列:添加HAL层

基于Android 6.0源码,基于实操在Android系统中如何为驱动程序添加一个HAL层。 1. 概述 在Android添加系统服务访问驱动程序系列:添加驱动程序中我们实现了一个简单的读写字符设备驱动 mychar,该篇文章为 驱动 mychar 是实现一个HAL层。 Android 系统的HAL层(硬件抽象层)运行在用户空间中,它向下屏蔽硬件驱动模块的实现细节,向上提供硬件...

Android添加系统服务访问驱动程序系列:添加驱动程序

基于Android 6.0源码, 实操在Android系统中如何添加一个驱动程序。 1. 概述 开发一个驱动程序 mychar,mychar 是一个简单的字符设备驱动,Android 上层可以通过 read、write 对驱动进行读写操作,即写数据到 FIFO 和从 FIFO 读出写入的数据。 步骤如下: 编写内核驱动程序模块 修改内核 Kconfig 文件 修改...

Android安全机制之Permission权限应用篇

1. 概述 Android 是一个权限分隔的操作系统,这是利用 Linux 已有的权限管理机制,通过为每一个应用程序分配不同的 UID 和 GID , 从而使得不同的应用程序之间的私有数据和访问达到隔离的目的。与此同时, Android 还 在此基础上进行扩展,提供了 permission 机制,它主要是用来对应用程序可以执行的某些具体操作进行权限细分和访问控制。 permission 机...