Android系统开发
文章平均质量分 61
村里小码农
坚定信念,百折不饶,虚静待令,有物混成。
展开
-
03-Unix Socket demo
【代码】03-Unix Socket demo。原创 2024-01-05 17:33:09 · 437 阅读 · 0 评论 -
FDbus NDK以及QNX交叉编译
fdbus 可以这讲,就是一个定制化的RPC,可以用于进程间通信,以及双系统间通信。TODO。原创 2022-11-03 15:19:00 · 2307 阅读 · 0 评论 -
Protobuf NDK以及QNX交叉编译
Protobuf 用处很广,尤其是通讯数据序列化,反序列化。TODO。原创 2022-11-03 14:15:59 · 888 阅读 · 1 评论 -
Android 性能统计 dumpsys
TODO。原创 2022-10-11 11:55:36 · 408 阅读 · 0 评论 -
如何创建一个Hidl Service?
Hidl service原创 2022-09-26 18:04:27 · 1218 阅读 · 0 评论 -
编译错误及解决方案汇总
编译错误问题汇总原创 2022-09-26 15:57:47 · 402 阅读 · 0 评论 -
Hidl Service - Java Service共享内存
【代码】Hidl Service - Java Service共享内存。原创 2022-09-19 14:35:56 · 1237 阅读 · 0 评论 -
Android/Automotive 多声道录音支持
注意:当setChannelMask和setChannelIndexMask都设置的时候,AudioRecord只是用setChannleMask的值(最大为两个通道)。AAudio 是Android为解决声音延时的高效Native接口,Andriod系统标配,目前大量使用在公网对讲机,语音对讲,Voip,RTC项目中。配置Configure文件路径: /vendor/etc/audio/audio_policy_configuration.xml。修改后://增加四声道。......原创 2022-08-10 11:44:11 · 2621 阅读 · 0 评论 -
Android/AutoMotive 多用户操作
通过分离用户帐号和应用数据,Android 支持在一台 Android 设备上添加多个用户。例如,父母可能会允许他们的孩子使用家庭平板电脑,一个家庭可以共用一辆汽车。Android Automotive 依靠 Android 的多用户实现来提供共用设备体验。...原创 2022-08-05 16:25:18 · 1798 阅读 · 0 评论 -
Android APP 存储权限(适用高于Android R版本)
2.2 方法2:通过InputStream/OutputStream读写文件。原创 2022-08-02 19:46:10 · 3720 阅读 · 0 评论 -
Android查看APP权限
dumpsys package xxx.xxx.xxx(包名)原创 2022-08-02 19:20:53 · 1765 阅读 · 0 评论 -
如何让linux终端不显示路径
前言:通常情况下,Linux终端会显示完整的路径:如下图过长的路径不方便命令行操作。修改:修改~/.bashrc$ vim ~/.bashrc找到PS1项删除后更新$ source ~/.bashrc修改后效果如下:...原创 2022-04-01 11:27:14 · 3161 阅读 · 0 评论 -
Android 汽车电子功能安全模块化设计思路
1. 系统功能安全:Safety SEAndroid/SE Linux AVB(启动时验证) ASIL应对(各模块驱动设计加入ASIL策略) 2. 功能模块设计 :原创 2022-03-24 15:47:30 · 7064 阅读 · 0 评论 -
Android/Linux系统性能分析工具之-perfetto
1. 前言:Perfetto工具是Android全新的统一的trace收集和分析框架,可以抓取平台和app的trace信息,是用来取代systrace的,但systrace由于历史原因也还会一直存在,并且Perfetto抓取的trace文件也可以同样转换成systrace视图,如果习惯用systrace的,可以用Perfetto UI的"Open with legacy UI"转换成systrace视图来看。1.1 perfetto 文档地址:https://perfetto.dev/docs/原创 2022-03-21 19:28:20 · 9297 阅读 · 0 评论 -
BCC-Tool 工具使用
1. 概述2. 编译安装1). 下载地址:Releases · iovisor/bcc (github.com)https://github.com/iovisor/bcc/releases2). 文件:bcc-src-with-submodule.tar.gz3).解压:tar xvzfbcc-src-with-submodule.tar.gz2.1 Linux X862.1.1 安装编译环境sudo apt-get -y install bison build.原创 2022-03-01 13:37:47 · 3628 阅读 · 0 评论 -
Android/Linux系统性能分析工具之-top
1. 概述2. 用法2.1 命令格式2.2 字段说明://Top显示字段终端输入:top显示如下:PID:进程号USER:用户PR:优先级NI:任务nice值VIRT:虚拟内存用量RES:物理内存用量SHR:共享内存用量S:进程状态 D= 不可中断的睡眠状态 R= 运行 S= 睡眠 T= 跟踪 / 停止 Z= 僵尸进程%CPU:CPU占用比%MEM:物理内存占用比TIME+:累计CP...原创 2022-03-01 09:32:47 · 1203 阅读 · 0 评论 -
Android/Linux系统性能分析之-CPU
1. 概述:CPU推动了所有软件的运行,因而通常是系统性能分析的首要目标;现代系统一般有多颗CPU,通过内核调度器共享给所有运行软件。当需求的CPU资源超过了系统力所能及的范围时,进程里的线程(或者任务)将会排队,等待轮候自己运行的机会。等待给应用程序的运行带来严重延时,使得性能下降。我们可以通过仔细检查CPU的用量来寻找性能改进的空间,还可以去除以下不需要的负载。从上层来说,可以按照进程,线程或者任务来检查CPU的用量。从下层来看,可以剖析并研究应用程序和内核的代码路径。在底层,可以研究CPU指令原创 2022-02-24 18:40:12 · 3316 阅读 · 0 评论 -
Android/Linux系统性能分析工具之-mpstat
1. 概述:mpstat 是 Multiprocessor Statistics 的缩写,是Linux实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。在多 CPUs 系统里,其不但能查看所有 CPU 的平均状况信息,而且能够查看特定 CPU 的信息。mpstat 最大的特点是:可以查看多核心 cpu 中每个计算核心的统计数据;而类似工具 vmstat只能查看系统整体 cpu 情况1.1 与vmstat差别vmstat 和 mpstat.原创 2022-02-22 16:12:39 · 2188 阅读 · 0 评论 -
Android/Linux系统性能分析工具之-vmstat
1. 概述:vmstat命令是最常见的Linux/Unix监控工具,它会报告 Linux 系统的虚拟内存统计。vmstat 会报告有关进程、内存、分页、块 IO、陷阱(中断)和 cpu 活动的信息。它可以帮助 Linux 管理员在解决问题时识别系统瓶颈。相比top,可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。2. 用法2.2 命令格式以及参数:vmstat [ options] [delay] [count]对应中原创 2022-02-22 15:34:39 · 580 阅读 · 0 评论 -
Android/Linux系统性能分析工具之-iostat
1. 概述:iostat 主要用于输出磁盘IO 和 CPU的统计信息,在排查分析io问题时,可以使用iostat查看磁盘的IO性能状态数据。iostat属于sysstat软件包,针对Linux/Android嵌入式平台可以交叉编译sysstat后获取iostat可执行文件在该平台上操作。Android平台Systat交叉编译可以参考下面文章:Android NDK交叉编译sysstat工具_坚定信念,百折不饶-CSDN博客2. 用法:2.1 命令格式及参数iostat [ o.原创 2022-02-22 11:53:44 · 857 阅读 · 0 评论 -
Android/Linux系统性能分析及工具
CPU CPU架构 CPU推动了所有软件的运行,因此通常是系统性能分析的首要目标。现代系统一般有多颗CPU,通过内核调度器共享给所有运行软件。当需求的CPU资源超过了系统力所能及的范围时,进程里的线程(或者任务)将会排队,等待轮候自己运行的机会。等待给应用程序的运行带来严重延时,使得性能下降。我们可以通过仔细检查CPU的用量,寻找性能改进的空间,还可以去除一些不需要的负载。 CPU内存缓存 为了提高内存I/O性能,处理器提供了多种硬件缓存。缓存大小的关系如下图,越小则速度越快...原创 2022-02-21 09:56:00 · 2076 阅读 · 0 评论 -
Android音频焦点及混音策略
前言 音频焦点官方解读 两个或两个以上的 Android 应用可同时向同一输出流播放音频。系统会将所有音频流混合在一起。虽然这是一项出色的技术,但却会给用户带来很大的困扰。为了避免所有音乐应用同时播放,Android 引入了“音频焦点”的概念。一次只能有一个应用获得音频焦点。当您的应用需要输出音频时,它需要请求获得音频焦点,获得焦点后,就可以播放声音了。不过,在您获得音频焦点后,您可能无法将其一直持有到播放完成。其他应用可以请求焦点,从而占有您持有的音频焦点。如果发生这种情况,您的应用应暂停播放.原创 2022-02-21 09:44:32 · 12263 阅读 · 3 评论 -
Android/Linux I2C Tools
源码下载地址:https://github.com/suapapa/i2c-tools原创 2022-02-17 11:42:16 · 1014 阅读 · 0 评论 -
Android NDK交叉编译FFmpeg
1. 下载FFMPEGhttp://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2http://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz22. 解压ffmpeg-4.2.2.tar.bz2$ tar xvjfffmpeg-4.2.2.tar.bz23. 下载NDK 镜像下载路径:NDK 下载 | Android NDK | Android Developers 4. ...原创 2022-01-14 16:19:38 · 2696 阅读 · 0 评论 -
Android NDK交叉编译X264
1. X264下载:https://gitee.com/mirrors_addons/x264.git2. 下载ndk 镜像下载路径:https://developer.android.google.cn/ndk/downloads?hl=zh-cn 3. 编译脚本#!/bin/bash####################################### build script for x264#### url:#### Date: 202...原创 2022-01-14 11:28:03 · 518 阅读 · 0 评论 -
Android NDK交叉编译sysstat工具
1. 下载 sysstat 镜像下载路径:https://gitcode.net/mirrors/sysstat/sysstat/-/tree/v12.5.52. 下载ndk 镜像下载路径:https://developer.android.google.cn/ndk/downloads?hl=zh-cn 3. 写编译脚本build.sh脚本如下:#!/bin/bash####################################### b...原创 2021-12-29 17:11:01 · 1799 阅读 · 0 评论 -
Android性能评估
1. Google 参考:评估性能您可以使用Simpleperf评估设备的性能。Simpleperf 是一款适用于 Android 平台上的应用和本机进程的原生分析工具。您可以使用CPU Profiler实时检查应用的 CPU 使用率和线程活动。在性能方面,有两项用户可见指标:可预测、可察觉的性能。界面是否掉帧或始终以 60 帧/秒的帧速率渲染?音频在没有软件工件或弹出的情况下会播放吗?用户在触摸屏幕后要多久显示屏上才会显示相应结果? 耗时操作所需的时间长短(如打开应用)。前者比...转载 2021-12-23 16:59:48 · 485 阅读 · 0 评论 -
Android ADB 常用使用指令
##ADB调试妙用:1. 基本用法 1.1 adb 等待设备连接: #adb wait-for-device eg://windows运行工具指令如下: 识别并连接设备后输出devices信息 #adb wait-for-device #adb devices 1.2 重启adb #adb kill-server #adb start-server 1.3 修改权限 #adb root //获取root权限...原创 2021-12-22 14:47:40 · 8318 阅读 · 0 评论 -
Ubuntu 16.04 LTS - Install Android Tools (ADB, Fastboot )
1.Install Android tools#sudo apt-get update#sudo apt-get install android-tools-adb android-tools-fastboot2.Update to latest ADB and fastboot# adb versionAndroid Debug Bridge version 1.0.32# wget https://dl.google.com/android/repository/platfor..原创 2021-07-28 14:31:43 · 1169 阅读 · 0 评论 -
MTK平台Android项目开发框架搭建
前言: 不同的项目配置存在差异,原生的SDK无法兼容多个项目作业,按照原生框架创建项目比较繁琐,如果采用GIT分支形式来管理每个项目同样过于繁琐; 因此一套代码多个项目框架是有必要的。1. 编译脚本:#!/bin/bash####################################################### # Author: Tim([email protected])##############################################原创 2020-07-15 10:45:30 · 1953 阅读 · 0 评论 -
Android8.0之后UMS支持
前沿: Google在Android N之后严格了UMS功能,尤其在Android8.0之后,很多代码都删除了。那么如果要让系统支持UMS,如何做呢?1. 确认内核,内核基本支持UMS.2. 修改framework,让framework usb服务,以及usb storage 管理服务支持UMS3. 修改system/vold 让vold支持UMS功能总结:UMS其实就是Linux的一个功能,Android上面所做的只不过是给Linux内核ums功能发送相应指令打开/关闭。 ...原创 2020-07-07 12:20:52 · 1311 阅读 · 3 评论 -
Android大容量64G以上 TF卡支持
1. 64G以上TF卡大容量基本采用exFAT格式. 所以如果要支持64G 以上TF卡只需让系统支持exFAT文件系统格式即可.2. exFAT格式支持 2.1 Android O之前系统采用fuse,Android O之后的系统采用sdcardfs. 2.2.内核支持exFAT 2.3 添加exFAT工具,exfat.fsck,exfat.mount 等等 2.4 修改Vold,支持exFAT U盘/ TF卡挂载/卸载/格式化...原创 2020-07-07 12:11:49 · 1666 阅读 · 0 评论 -
高通平台4G执法记录仪开发
1. 4G功能开发...2. 开机启动APP开发...3. 开机时间优化..4. IRCUT/红外/白光灯/爆闪 控制..5. 执法仪接口数据管理开发 //对接PC,采集站...6. 接PC USB自动开机...7. 状态LED灯控制...8. 双电池管理,电池热插拔处理...9. 电池曲线. 电池耐久性优化...10. 功耗处理方案...11. camera视频水印处理方案...12. 按键自定义, APP自适应适..原创 2020-07-04 18:31:51 · 3659 阅读 · 1 评论 -
MTK平台4G执法记录仪开发
1. 4G功能开发 ...2. 开机启动APP开发...3. 开机时间优化..4. IRCUT/红外/白光灯/爆闪 控制..5. 执法仪接口数据管理开发 //对接PC,采集站...6. 接PC USB自动开机...7. 状态LED灯控制...8. 双电池管理,电池热插拔处理...9. 电池曲线. 电池耐久性优化...10. 功耗处理方案...11. camera视频水印处理方案...12. 按键自定义, APP自适应适.原创 2020-07-04 18:28:05 · 1904 阅读 · 2 评论 -
Ubuntu adb 配置
基于ubuntu的adb环境配置,可供大家参考一下: 一. 方案1 二. 方案2 1. 编辑rules $sudo gedit /etc/udev/rules.d/51-android.rules 添加如下内容 SUBSYSTEM==”usb”,ATTRS{idVendor}==”18d1”,ATTRS{idProduce}==”4e08”,MODE=”0666” 添加依据:lsusb 查看设备vid以及pid. 然后保...原创 2020-07-04 17:34:37 · 4102 阅读 · 0 评论 -
Android 与 PC通讯Socket详解
1. 参考文章:https://blog.csdn.net/u013553529/article/details/802968702. PC --- Android多台设备注意事项: 2.1 adb 指令需要添加指定设备 比如:输入 adb devices 显示:AAAAAAAAAAAA device -->设备A BBBBBBBBBBBB device -->设备B 那么跟设备A 用adb通讯应操作如下: adb -s AAAAAAAAAAAA ...原创 2020-06-29 17:11:44 · 801 阅读 · 0 评论 -
Android 中的 ANR 详解
关于ANR,以前只知道Activity、BroadCastReceiver、Service三种组件的ANR时限、一般采用哪些方式避免ANR、以及通过data/anr/traces.txt去分析ANR原因,感觉好像这就够用了。但是,前几天看源码的时候,脑海里突然跳出一个问题:ANR是怎么判断的5秒还是10秒?这个问题迅速扩大为一连串问题:ANR的时间定义在哪些文件里?ANR是怎么...原创 2020-01-08 14:38:26 · 527 阅读 · 0 评论 -
Android lmk (lowmemorykiller) and lmkd 白名单
[DESCRIPTION]lowmemorykiller 可能误杀一些进程,比如 测试测序,特别重要但占用内存比较大的程序等可能使用到添加白名单的方法,避免被误杀[SOLUTION](一)首先看是lowmemroy 还是 lmkd查看方法看: 两种(1)▪/sys/module/lowmemorykiller/parameters/adj 里面的值0,0,0,0...原创 2019-11-12 18:29:14 · 3712 阅读 · 0 评论 -
Android如何减少lowmemory的发生几率[小内存]
内存不足时常发生卡顿,甚至是死机重启问题,需要尽量减少内存不足情况的发生1. 减少后台进程的数量修改 frameworks\base\services\core\java\com\android\server\am\ProcessList.javastatic final int MAX_CACHED_APPS = 32; // 改为 static final int MAX_CA...原创 2019-11-12 17:59:53 · 905 阅读 · 0 评论 -
开发常用设置
1. github clone慢问题解决方案: --修改HOSTWindows下在C:/Windows/system32/drivers/etc/hostsUbuntu等linux系一般在/etc/hosts在hosts中添加如下内容:# Github151.101.44.249 github.global.ssl.fastly.net192.30.253.113...原创 2019-11-04 17:02:35 · 152 阅读 · 0 评论