
Android驱动
Android驱动
小馋喵星人
这个作者很懒,什么都没留下…
展开
-
VS2019 C++跨平台开发 Android So 库
一、VS2019 软件配置1.1 下载VS2019 Android 开发工具在获取工具和功能中,勾选下载 Android 开发工具(包含SDK)和 NDK。1.2 配置 Android SDK / NDK 路径如果自已额外下载载了,可以重定位到其他路径,如果是通过 VS2019 下载的,目录自定义好了,默认没勾选,勾上就可以了。如下图,NDK 是我自定义的,SDK 和 Java 是默认的路径。注意,配置后,重启工程才能生效二、创建Android So 库项目创建 动态共享库(A原创 2020-10-15 16:32:05 · 3940 阅读 · 3 评论 -
【高通SDM660平台 Android 10.0】(18) --- Camera start_session() 过程分析
【高通SDM660平台 Android 10.0】18 --- Actuator 与 Kernel Actuator代码分析 及 Camera start_session过程分析1. module_sensor_init( )1.1 module_sensor_start_session( )1.2 module_sensor_init_session()1.3 module_sensor_offload_init_config( )《【高通SDM660平台】(1) — Camera 驱动 Bring原创 2020-06-19 11:44:31 · 1801 阅读 · 0 评论 -
【高通SDM660平台 Android 10.0】(19) --- Camera_focus、Camera_snapshot、volume_up 按键工作原理分析
【高通SDM660平台 Android 10.0】19 --- Camera_focus、Camera_snapshot、volume_up 按键工作原理分析一、 DTS代码配置二、 Kernel 代码解析2.1 按键初始化 gpio_keys_probe()2.1.1 解析gpio dts节点 gpio_keys_get_devtree_pdata()2.2 按键工作原理2.2.1 中断注册 gpio_keys_setup_key()2.2.2 按键工作流程一、 DTS代码配置Camera_focu原创 2020-06-18 15:42:43 · 1979 阅读 · 3 评论 -
【Android Linux内存及性能优化】(十) 进程冷启动和热启动的区别
【Android Linux内存及性能优化】十 进程冷启动和热启动的区别四、进程冷启动和热启动的区别本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》《【Android Linux内存及性能优化】(三) 进程内存的优化 - ELF执行文件的 数据段-代码段》《【Android Linux内存及性能优化】(四) 进程内存的优化 - 动态库- 静态库》《【A原创 2020-06-15 09:52:29 · 802 阅读 · 0 评论 -
【Android Linux内存及性能优化】(九) 进程启动速度优化篇
【Android Linux内存及性能优化】九 进程启动速度三、进程启动速度3.1 查看进程的启动过程3.1.1 查看进程启动时间 strace -tt ./hello3.1.2 查看进程启动过程 LD_DEBUG=libs ./hello3.2 减少动态库的加载数量3.3 共享库的搜索路径本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》《【Android原创 2020-06-11 11:38:55 · 988 阅读 · 0 评论 -
高通USB 调试总结随笔
高通USB 调试总结随笔1. 分析USB log2. 正常识别流程3. 修改为host 模式4. USB检测插入原理最近分析了个高通USB 1 通过 主板上的HUB芯片不能正常通信识别USB 外设的问题,注意分析时,一定要再三确认硬件工作正常 ,可以做个实验,剪开一根USB 线,飞线到HUB芯片DPDM 上,如果,USB 接在电脑上,USB 外设接在HUB口上,电脑能正常识别外设,说明HUB芯片正常工作。如下是对软件调试方面的一些方法,写个随笔备份下:1. 分析USB logecho ‘fi原创 2020-06-09 17:15:42 · 4195 阅读 · 0 评论 -
【Android Linux内存及性能优化】(八) 系统性能分析工具
【Android Linux内存及性能优化】八 软件性能优化二、软件性能优化2.1 性能分析2.1.1 /proc 目录2.1.1.1 系统相关 cat /proc/stat2.1.1.2 系统相关 cat /proc/loadavg2.1.1.3 进程相关 cat /proc/51/stat2.1.1.4 进程相关 top本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段原创 2020-06-02 17:10:33 · 824 阅读 · 0 评论 -
【Android Linux内存及性能优化】(七) 程序内存泄漏检查工具
【Android Linux内存及性能优化】四 进程内存的优化 - 动态库 - 静态库一、内存篇1.1 系统当前可用内存1.2 进程的内存使用1.3 进程内存优化1.4 系统内存优化1.5 内存泄漏1.5.1 mtrace() 和 muntrace()1.5.2 malloc() 和 free() 钩子函数1.5.3 化整为零法1.5.4 Dmalloc本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存原创 2020-06-02 11:02:05 · 757 阅读 · 0 评论 -
【Android Linux内存及性能优化】(六) 系统内存的优化
【Android Linux内存及性能优化】四 进程内存的优化 - 动态库 - 静态库一、内存篇1.4 系统内存优化1.4.1 守护进程的内存使用1.4.2 tmpfs 分区1.4.3 Cache 缓存 和 Buffer 缓冲1.4.3.1 Cache 缓存1.4.3.2 Buffer 缓冲本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》《【Androi原创 2020-05-26 16:14:04 · 990 阅读 · 0 评论 -
【FFMPEG】华为新老两手机平台编码的视频,在同一车机上投屏解码时间慢的问题分析
一、问题背景今天上班时,收到华为那边咨询邮件:分别使用华为新平台手机、老平台手机 各一台,在同一台车机上投屏HICAR ,发现同样是H264编码,1920×720的视频数据,新平台手机编码的视频,在车机上解码的时间在 20ms 以内,老平台手机编码的视频,在车机上解码的时间有些帧超过100ms。同步提供了新老平台的 es 流数据。二、分析1. 使用 pplay 播放 ES 流数据命令: ffplay new_platform_fast.es播放 新平台,解码速度快的 es流数据:c原创 2020-05-25 17:44:31 · 1862 阅读 · 0 评论 -
【Android Linux内存及性能优化】(五) 进程内存的优化 - 线程
【Android Linux内存及性能优化】四 进程内存的优化 - 动态库一、内存篇1.3 进程内存优化1.3.1 ELF执行文件1.3.2 动态库1.3.3 静态库本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》《【Android Linux内存及性能优化】(三) 进程内存的优化 - ELF执行文件的 数据段-代码段》《【Android Linux原创 2020-05-25 15:43:29 · 1261 阅读 · 0 评论 -
【Android Linux内存及性能优化】(四) 进程内存的优化 - 动态库- 静态库
【Android Linux内存及性能优化】四 进程内存的优化 - 动态库一、内存篇1.3 进程内存优化1.3.1 ELF执行文件1.3.2 动态库1.3.2.1 数据段本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》《【Android Linux内存及性能优化】(三) 进程内存的优化 - 数据段 - 代码段》一、内存篇1.3 进程内存优化1原创 2020-05-20 16:12:49 · 1306 阅读 · 3 评论 -
【Android Linux内存及性能优化】(三) 进程内存的优化 - ELF执行文件的 数据段-代码段
【Android Linux内存及性能优化】三 进程内存的优化 - 数据段一、内存篇1.3 进程内存优化1.3.1 执行文件1.3.1.5 数据段本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》《【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF》一、内存篇1.3 进程内存优化1.3.1 执行文件1.3.1.5 数据段...原创 2020-05-19 17:02:51 · 1063 阅读 · 0 评论 -
【Android Linux内存及性能优化】(二) 进程内存的优化 - 栈段 - 环境变量 - ELF
【Android Linux内存及性能优化】二 进程内存的优化 - 栈段一、内存篇1.3 进程内存优化1.3.1 执行文件1.3.1.2 栈段1.3.1.1.1 栈上申请内存1.3.1.1.2 栈的扩展本文接着《【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段》一、内存篇1.3 进程内存优化1.3.1 执行文件1.3.1.2 栈段栈中的内存是由程序自动来维护的,栈段内存紧密排列,不会出现内存碎片的问题,不需要手动申请和释放。在进程进入函数时,会自动将参数程局部原创 2020-05-19 09:42:22 · 842 阅读 · 0 评论 -
【Android Linux内存及性能优化】(一) 进程内存的优化 - 堆段
【Android Linux内存及性能优化】一 内存的测量一、内存篇1.1 系统当前可用内存1.1.1 命令 free -h1.1.2 命令 cat /proc/meminfo1.2 进程的内存使用1.2.1 虚拟内存和物理内存一、内存篇1.1 系统当前可用内存1.1.1 命令 free -h在Linux 中敲入free 命令获得当前系统的内存使用情况。msm8953_32:/ # free total used free shared b原创 2020-05-18 11:58:21 · 2988 阅读 · 0 评论 -
动态修改屏分辨率
现成的 ADB 命令为:wm size 1920x1280 ----> 这个 ADB 修改分辨率wm density 240 ----> 这个 修改dpi其实 wm 调用的就 是 上层 WindowsManger.java 的方法,最终调用到 Framework 下的 WindowsManagerServices.java 代码。如果上层想对 分辨率修改,可以重写 Wi...原创 2019-10-16 13:28:46 · 1038 阅读 · 0 评论 -
C++ 实现Buffer 动态分配管理,FIFO模式存取数据
《C++ 实现Buffer 动态分配管理代码实现 》之前用的数组来管理 buff,这样就有一个问题数据没有先后,导到显示数据时,存在错乱,为此优化为 结构体指针,取数据时使用 FIFO 先进先出的模式来控制数据。具体代码实现如下:头文件代码@ receivedata.h#ifndef RECEIVEDATA#define RECEIVEDATA#include <stdi...原创 2019-10-15 14:51:36 · 1378 阅读 · 0 评论 -
C++ 中重写 ALOG 动态 控制宏控
#include <cutils/log.h>////////log define ////////////////////////#define LOG_TAG "receivedata"#define HICAR_LOG_ENABLE#ifdef HICAR_LOG_ENABLE#ifndef ALOGI_D#define ALOGI_D(...) ((void...原创 2019-10-09 11:28:20 · 1049 阅读 · 0 评论 -
aw9523芯片按键失效问问题分析
1、 问题分析部分---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...原创 2019-09-27 19:07:37 · 1977 阅读 · 1 评论 -
Android 中 KeyEvent keycode 配置 及 转换原理
添加自定义 KeyEvent 键值一、Kernel 修改1. 修改 input.h 添加keycode 定义 (16 进制)2. 修改 msm8909-mtp.dtsi 添加上报 (16 进制)二、Android 代码修改1. 修改 input-event-codes.h (16 进制)2. 修改 kl 文件(十进制)3. native 层 keycodes 重映射(十进制)3.1 修改 keyc...原创 2019-09-25 20:15:24 · 7251 阅读 · 5 评论 -
高通驱动实现 GPIO 中断上报键值
高通驱动实现 GPIO 中断上报键值一、 确认keycode值,同步修改上层键值映射表Tips 1: 选择一个好的键值的好处Tips 2: 如何确认驱动代是否ok二、 驱动代码编写1.1 驱动代码中注册 keycode1.2 probe() 函数中注册 key_code1.3 probe() 函数中注册按键中断1.4 在按键中断中上报 key event 事件一、 确认keycode值,同步修...原创 2019-09-24 21:11:08 · 3153 阅读 · 0 评论 -
定时器代码
#include <linux/jiffies.h>//jiffies调用头文件#include <linux/timer.h> //timer_list结构体static struct timer_list ms_timer; //定义timer_list结构体static void ms_timer_handler(void); //声时定时器函数vo...原创 2019-09-17 15:56:48 · 1344 阅读 · 0 评论 -
ADB下部分调试命令
ADB 下开启安卓轨迹settings --user 0 put system pointer_location 1settings --user 0 put system show_touches 1原创 2019-07-19 16:55:22 · 636 阅读 · 0 评论 -
「 Kernel Time 」How to print android UTC time in Kernel
There is question that the time of kernel and system is not consistentwhen use ‘logcat -b all’ to capture logs.Here’s how to add code to print system time in kernel:/*******************************...原创 2019-06-17 12:52:55 · 924 阅读 · 0 评论 -
视频编码之I帧 、P帧、B帧
视频传输原理视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因此有了H.264视频压缩标准。在H.264压缩标准中I帧、P帧、B帧用于表示传输的视频画面。帧...原创 2019-05-31 11:14:17 · 1742 阅读 · 0 评论 -
[Android] 通过 Wifi 调试 adb
手机需要有ADB 权限, 出就是通过USB线能够进入ADB 即可。手机 和 电脑 连接到同一个 wifi 局域网中。察看 手机 和 电脑的wifi 地址:举例如下:电脑: inet addr:192.168.137.40手机: 192.168.137.246此时,使用 USB 线连接手机,设置手机的port 口 (默认是5555 )adb tcpip 5555拔出USB...原创 2019-05-25 14:33:58 · 925 阅读 · 0 评论 -
Android LCM(一)之LK_LCM点亮流程
一. 入口 aboot_init()bootloader中的LCM 最开始是在 bootloader/lk/app/aboot/aboot.c 文件 aboot_init 函数中调用的.和屏相关的工作为:void aboot_init(const struct app_descriptor *app){ /* Initialise wdog to catch early lk crash...原创 2019-05-21 11:44:16 · 4432 阅读 · 7 评论 -
LCM接口汇总
1. RGB_TTL ( RGB电平信号 )TTL接口,数据传输速率不高,传输距离较短,且抗电磁干扰(EMI)能力也比较差,会对RGB数据造成一定的影响;另外,TTL多路数据信号采用排线的方式来传送,整个排线数量达几十路,不但连接不便,而且不适合超薄化的趋势。接线如下:a. 数据信号: 指RGB数据信号( RGB666或者RGB888 ), 如R0~R5、G0~G5、B0~B5b. 时钟...转载 2019-05-20 12:42:30 · 3163 阅读 · 0 评论 -
Android Camera系统架构
随着Android系统的不断升级,Camera子系统框架也在不断进化由最初的API1和HAL1到现在的API2和HAL3,由最初简单的拍照,录制到现在的连拍,AI人像;可以说是架构上变动最大最频繁的子系统。很多设备仍然依赖相机 HAL1,因此 Android 7.0 继续支持该模块。此外,Android 相机服务还支持同时实现两种 HAL(1 和 3),如果您希望通过相机 HAL1 支持性能...转载 2019-03-25 17:24:21 · 2644 阅读 · 0 评论 -
C++ 实现Buffer 动态分配管理代码实现
C++ 实现Buffer 动态分配管理代码实现一、 Class Memory_Manager 头文件代码实现二、 Class Memory_Manager 代码实现三、Class Memory_Manager 使用方法应公司需求,花半天时间写了一个内存buffer 动态管理的代码。实现功能如下:初始化时,常驻两块 buff 用于数据传输。(兼顾 性能)在数据高峰期时,当已分配的两块 b...原创 2019-10-10 18:26:37 · 2266 阅读 · 0 评论