Vane's Blog

HTTP基础

1. HTTP到底是什么 两种最直观的印象 浏览器地址栏输入地址,打开网页 Android中发送网络请求,返回对于内容 HTTP定义:Hypertext Transfer Protocol,超文本传输协议,和 HTML (Hypertext Markup Language 超文本标记语言) 一起诞生,用于在网络上请求和传输 HTML 内容。 超文本,即「扩展型文本」,指的...

深入理解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 文件 修改...