![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android系统
三火哥
android系统开发
展开
-
开机动画启动 android 9.0
开机动画原创 2022-11-16 11:22:41 · 1246 阅读 · 0 评论 -
android P 应用读写内置sd卡权限白名单
获取sd读写权限,设置权限白名单。原创 2022-11-09 18:00:21 · 424 阅读 · 0 评论 -
android p 休眠唤醒杀进程白名单
休眠唤醒杀进程的白名单原创 2022-08-22 15:10:40 · 704 阅读 · 0 评论 -
excessive cpu 优化杀进程解决方案 android P
背景: android系统优化电池使用,在应用退到后台后会判断应用是否还在使用cpu,如果在指定时间内使用cpu到一定程度就会杀进程,报ActivityManager: Killing 9553:com.oushang.screen/1000 (adj 700): excessive cpu 56840 during 300080 dur=623325 limit=10这个错。车机需要排除排除这种情况下杀carlink进程,在checkExcessivePowerUsageLocked种修改...原创 2022-03-21 16:28:48 · 4460 阅读 · 1 评论 -
android P 禁止应用开机自启动
公司有需求,禁止部分应用开机的时候自启动,实现代码如下:--- a/frameworks/base/core/res/res/values/config.xml+++ b/frameworks/base/core/res/res/values/config.xml@@ -3540,4 +3540,32 @@ <string-array translatable="false" name="apk_whitelist" > <item原创 2022-03-18 09:55:27 · 1709 阅读 · 0 评论 -
设置日志级别
讲RIL这个TAG的日志级别设置为I,可以在下面文件中修改device/mediatek/common/device.mk:2702: PRODUCT_PROPERTY_OVERRIDES += persist.log.tag.RIL=I也可以通过adb去设置:setproppersist.log.tag.RIL I原创 2022-01-20 15:19:20 · 2169 阅读 · 0 评论 -
安卓集成第三方APK
修改权限:$(shell chmod -R a+w $(LOCAL_PATH))include $(CLEAR_VARS)# Module name should match apk name to be installed.LOCAL_MODULE := LSF-Device-Phone-RoWLOCAL_SRC_FILES := LSF-Device-Phone-RoW/$(LOCAL_MODULE).apkLOCAL_MODULE_TAGS := optionalLOCAL_MODULE转载 2021-12-02 11:26:31 · 1787 阅读 · 0 评论 -
Android 开机加速优化
文章目录Android 开机加速优化 关闭BootLoader的企鹅 关闭开机动画Android 关闭锁屏 删除预装APP 查看预装APP 删除编译生成的APK 不编译APK 1. 统一配置 2. 修改单个APK的Android.mk 谷歌APP 高通APP 关闭系统服务 修改LOG打印级别 并发加载class和resource等资源 readahead机制预加载 测试 1. 关闭系统服务 2. 显示转载 2021-11-29 14:07:09 · 6215 阅读 · 0 评论 -
Android获取手机Cpu温度
Android获取手机Cpu温度 - 简书原创 2021-11-18 09:31:26 · 5569 阅读 · 1 评论 -
android P 不让应用持有WakeLock锁
说明 不让应用持有wakelock锁,主要是注释掉请求锁和释放锁实现diff --git a/frameworks/base/core/java/android/os/PowerManager.java b/frameworks/base/core/java/android/os/PowerManager.javaindex 87b856d..4d077cf 100644--- a/frameworks/base/core/java/android/os/PowerManag...原创 2021-11-16 20:34:36 · 1005 阅读 · 0 评论 -
android P 提高进程优先级
说明camera录像过程中发现,退出预览界面帧率只有16帧,达不到正常的25帧。进入预览界面帧率达到25帧,发现引用必须是前台进程才能使camera的帧率达到25帧,需要提高进程优先级。方法在ActivityManagerService中修改进程优先级,主要是在computeOomAdjLocked方法中添加diff --git a/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService原创 2021-11-16 15:52:00 · 1998 阅读 · 0 评论 -
MediaCodec开机的时候内存比较大分析
说明:开机的时候dumpsys meminfo | grep media.codec的时候内存增长到51M,正常时8M,需要分析内存为啥增长。方法:加pid打印只是分析出car和system_server进程,最终确认car进程时1M,system_server进程时50M,需要继续看,加堆栈打印,发现是EvsCamera进程导致内存增大。zhoujinyan@rev250:~/codes/ZR8666/frameworks$ git diff .diff --git a/framewo原创 2021-11-16 15:17:37 · 1155 阅读 · 0 评论 -
android P selinux权限设置为permissive(宽容模式)
在device下面的BoadConfig.mk中天下如下内容,表示userdebug版本设置宽容模式ifeq ($(TARGET_BUILD_VARIANT),userdebug)BOARD_KERNEL_CMDLINE += androidboot.selinux=permissiveendif原创 2021-10-26 13:28:17 · 3464 阅读 · 1 评论 -
解决系统内存不足
说明 安装应用过多,使用过程中会导致内存不足,杀掉系统进程,可以通过free -h命令判断当前剩余内存,杀掉部分进程来解决内存紧张问题。脚本实现 #!/bin/shwhile true ;do setprop test.mem 1 total=`free -m | sed -n '2p' | awk '{print $2}'` used=`free -m | sed -n '2p' | awk '{print $3}'` free=`free -m | sed -n...原创 2021-10-26 13:15:56 · 634 阅读 · 0 评论 -
Android9.0 push framework方法
文章目录push framework 创建framework_push.cmd并拷贝以下命令 push services 创建services_push.cmd并拷贝以下命令 push framework以前只需要push*.jar包,但9.0开始push了不会生效。需要其他的文件如下。创建framework_push.cmd并拷贝以下命令@ECHO OFFecho %time%adb rootadb remountadb push Y:\alps\ou转载 2021-10-20 10:50:05 · 516 阅读 · 0 评论 -
android7.1 自定义Launcher为主屏幕应用
说明 车机需要将应用的一个主APP作为主Launcher,如果这个应用不存在就用系统Launcher,如果存在就设置为主屏幕应用。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks/base$ git show 728f6abb1582883b4436ebbb194bd1a3a60601dccommit 728f6abb1582883b4436ebbb194bd1a3a60601dcAuthor: ...原创 2020-11-13 11:10:03 · 1859 阅读 · 0 评论 -
android7.1 科大讯飞语音引擎设置为首选引擎
说明 车机需要添加科大讯飞语音引擎,并且设置为首选引擎(Settiings里面可以看到默认选项)。实现 1.frameworks中修改zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show c7f9645508499629c4947d4691073ff254007f1commit c7f9645508499629c4947d4691073ff254007f19Author: zhoujiny..原创 2020-11-12 10:11:00 · 3976 阅读 · 0 评论 -
android7.1 修改系统默认媒体、闹钟、铃声音量
说明 系统默认的音量太大,需要将默认音量调小一点。实现 主要是修改系统、铃声、媒体、闹钟的默认音量大小。zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 58a8d5266736e328aa7abbddb8944c4c541ee2accommit 58a8d5266736e328aa7abbddb8944c4c541ee2acAuthor: zhoujinyan <zhoujy@..原创 2020-11-12 10:00:27 · 986 阅读 · 0 评论 -
Android7.1 源码修改之Settings音量调节界面增加通话音量调节
前言今天客户提了个需求,因为我们的设备在正常情况下无法调节通话音量,只有在打电话过程中,按物理音量加减键才能出现调节通话音量seekBar,很不方便,于是乎需求就来了。需要优化两个地方1、在正常情况下,按物理音量加减键都显示 通话音量调节seekBar,可方便快速调节通话音量2、在Settings中提示音界面点击设置进入,增加通话音量调节seekBar...原创 2020-11-12 09:42:41 · 1035 阅读 · 0 评论 -
android7.1修改默认休眠时间为1分钟
说明 修改系统默认的休眠时间。实现zhoujy@TP:~/data/android/sc826_cn_01_00_c100/msm_8953_git$ git show a8b9591d15d315714e84b14d2d63a9aaf6320e89commit a8b9591d15d315714e84b14d2d63a9aaf6320e89Author: zhoujy <zhou764219923@qq.com>Date: Thu Sep 17 13:41:...原创 2020-11-10 11:58:05 · 1090 阅读 · 0 评论 -
android7.1添加F13到F24按键
说明 车机添加很多按键功能,系统需要自定义按键,来满足需求。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 1b417fc8a116b9052d72f94cbf2983153ffea45ecommit 1b417fc8a116b9052d72f94cbf2983153ffea45eAuthor: zhoujinyan <zhoujy@ibumobile.com&g...原创 2020-11-10 10:59:23 · 798 阅读 · 0 评论 -
Android8.1 registerAvailabilityCallback后能监听front和back相机的状态没办法监听camera id为2和3的状态
CameraManager有个registerAvailabilityCallback接口可以通过onCameraAvailable和onCameraUnavailable回调通知应用哪些camera在使用,方便第三方应用知道camera能否打开。但是有个问题相机有多个摄像头如:camera id 为:0,1,2,3,这时候能监听0和1的状态,没办法监听2和3的状态。但是高通相机相机(...原创 2019-01-07 17:48:37 · 2472 阅读 · 4 评论 -
Android7.1修改NTP地址
说明 android系统默认的请求更新系统时间的服务器是谷歌的时间服务器,国内谷歌服务器用不了,那么我们想要更新系统时间,就需要更改NTP服务器地址为阿里的。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 287e1af59248e9a8b45c7b11b1a13ceb55695661commit 287e1af59248e9a8b45c7b11b1a13ceb5569566...原创 2020-11-10 10:12:56 · 3171 阅读 · 0 评论 -
android7.1禁止下拉状态栏
说明车机要求禁止状态栏的通知栏下拉,以下是该需求的实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 824d2bc48b61da7403b370011e83fae5cba2cdfecommit 824d2bc48b61da7403b370011e83fae5cba2cdfeAuthor: zhoujinyan <zhoujy@ibumobile.com>Date:原创 2020-11-10 10:06:27 · 1054 阅读 · 0 评论 -
android7.1 拍照去除提示音
说明 android为了用户隐私,默认拍照会有声音,车机经常需要拍照,所以需要修改为静音。zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 14efffd58eafecf0d0f360017183074a0236ea74commit 14efffd58eafecf0d0f360017183074a0236ea74Author: renrd <renrd@ibumobile.com>...原创 2020-11-10 09:54:04 · 550 阅读 · 1 评论 -
android7.1Camera中添加获取当前打开摄像头ID的接口
说明安卓原生的Camera接口没有获取当前打开摄像头的ID的接口,应用有这个需求,下面是添加获取当前打开Camera的ID的方法。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 4184aba66384c03f011471b542b59a322ce0f6c5commit 4184aba66384c03f011471b542b59a322ce0f6c5Author: zhoujy <.原创 2020-11-05 11:01:16 · 19118 阅读 · 1 评论 -
android7.1 MediaCodec.configure流程分析
参考资料1.https://blog.csdn.net/u012188065/article/details/867165132.https://blog.csdn.net/u012188065/article/details/86723535原创 2020-10-28 15:42:10 · 350 阅读 · 0 评论 -
Andorid7.1 系统接口H264数据回调,并且支持修改分辨率,帧率等信息
前言 公司是做车机的,车机行业会有一些特殊需求,需要做实时视频上传,这时候应用就需要将预览的YUV数据转换成h264数据再上传,但是公司要求将该工作交给系统处理,应用接收h264数据,然后上传就行,该h264数据支持分辨率,I帧间隔,码率,帧率等修改。这时候就需要去看系统源码,然后添加新的api给应用。实现 1.修改内容如下:zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git$ git statusOn bran...原创 2020-10-26 17:41:40 · 365 阅读 · 0 评论 -
Android7.1 Settings加入永不休眠选项
前言 做车机的公司没有系统应用工程师,只要涉及到系统的所有问题,全部由系统工程师解决,测试提出需要在Settings中加入永不休眠选项,下面是具体实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00_a620/msm_8953_git$ git show 19cfd7ff7d73f1835def9eb3f7d97db524f2081ccommit 19cfd7ff7d73f1835def9eb3f7d97db524f2081cAuthor: zhouj..原创 2020-10-15 18:02:23 · 1261 阅读 · 2 评论 -
ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系(and5.1)
由于ActivityManagerService没有使用aidl机制,因此就直接用了代码实现看上去复杂了一些,下面我们来理下ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系。1.ActivityManagerNative先来看ActivityManagerNative:public abstract class ActivityManagerNative extends Bi转载 2020-10-15 17:45:05 · 677 阅读 · 0 评论 -
Window和WindowManager知识点总结
前言本文为《Android开发艺术探索》(下面简称“艺术探索”)第八章读书笔记。现在应届生真的好强,比如这位的简书minmin_1123的简书,对《艺术探索》各章节的内容总结的有条有理。Activity,Window,WindowManager有什么联系Window表示一个窗口的概念,在日常开发中直接接触Window的机会并不多,但是在某些特殊时候我们需要在桌面上显示一个类似悬浮窗的东西,那么这种效果就需要用到Window来实现。Window的具体实现位于WindowManagerService转载 2020-10-15 16:24:52 · 636 阅读 · 0 评论 -
android7.1日志系统功能开发
前言 每个公司都会要求将系统所有日志保存到指定目录,方便分析问题,我们公司也不例外,下面记录我这边做功能的具体实现。实现 1.创建打印日志的脚本init.corelog.sh 目录:/device/qcom/msm8953_64/init.corelog.sh#!/system/bin/sh#LOGPATH=/sdcard/corelogDATE=$(date +%Y%m%d%H%M)ROOTPATH=/data/corelogLOGPATH=$ROOTPA...原创 2020-10-14 17:00:29 · 328 阅读 · 0 评论 -
android7.1动态显示和隐藏状态栏和导航栏
前言 由于公司应用不知道如何隐藏状态栏和导航栏,要求系统提供接口实现该功能,没有办法,搞系统开发的苦逼青年们就得满足各种要求,即使知道不合理!下面是具体实现。实现zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git$ git diffdiff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusB...原创 2020-10-14 15:49:31 · 2816 阅读 · 4 评论 -
MediaRecorder添加setNextOutputFile流程
MediaRecorder添加setNextOutputFile流程 MediaRecorder.java ↓ Android_media_mediarec...原创 2020-09-11 11:35:29 · 737 阅读 · 0 评论 -
[Android Video FrameWork] OMXNodeIntance中动态控制log的一种方法
从事此行业N年,遇到问题上去先是一通王八拳,能把问题打死,就继续找下一个问题的茬,如果打不死,就再打一套王八拳,直至打死问题为止。王八拳(不成体系的定位方法和手段)对付问题有效果,但是效率低,我的王八拳主要是:加log,编译,替库,运行,看log, 加log,编译,替库,运行,看log……运用这种磨豆腐的磨劲,磨死了好多问题,但 碰到流程套路深的框架和体系,这个效率实在实在是太低了,有时候能从java层跟到内核层,有种上穷碧落下黄泉的感觉,甚至最后还 两处茫茫皆不见。后来升级王八拳至 王八转载 2020-09-09 16:46:02 · 677 阅读 · 0 评论 -
常用android命令备忘录
1. 常用基本命令adb devices 查看当前挂载手机设备的信息adb root root userdebug版本的手机。adb remount 将 '/system' 目录改为可写入的模式,默认情况下 '/system' 部分是只读模式的。 这个命令只适用于已被 root 的设备, 即调用过 adb root之后。 注意,使用其他命令之前,最好先使用adb root和adb remount命令。adb push test.mp4 /sdcard/ push 文件置于sdcard转载 2020-09-09 16:30:45 · 147 阅读 · 0 评论 -
使用调用栈来调试Android代码
Android代码流程比较复杂,单纯看代码很容易跟丢,如果能在对应位置增加调用栈函数,运行时,我们可以根据调用栈来退出安卓代码的调用流程,可以事半功倍。1、java代码java代码中加调用栈方法很简单,抛一个异常即可。import android.util.Log;Log.i(TAG, Log.getStackTraceString(new Throwable()));注意,有的java文件中使用了Slog.i 来打印信息, Slog实际封装了Log的部分方法,但是没有封装get.转载 2020-09-09 16:22:59 · 310 阅读 · 1 评论 -
Android 7.1.2 源码修改,使用自己的 app 作为默认桌面,不弹出桌面选择弹窗
需求:使用自己开发的桌面 app 作为默认,不再出现桌面选择在不修改源码前提下,可以设置自己的app为桌面,但是如果自己的应用出现崩溃,则在 Android 启动机制下会弹出桌面选择弹窗,如果在定制的系统中,这个是不能接受的,但本身在开发也需要使用默认 launcher 进行其他的一些设置,所以需要保留多个桌面启动器。1、解决思路在没有自己的启动器时候,由系统自己处理,即弹出弹窗选择或者使用自带的 Launcher3 桌面;在自己app存在情况下,使用自身app,拒绝弹窗选择。2、分析从转载 2020-09-08 17:47:22 · 1093 阅读 · 0 评论 -
给第三方Apk进行系统签名
一、Android签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contacts进程共享数据。4、media:该APK是media/download系统中的一环。应用程序的Android.mk中有一个LOCAL_C转载 2020-08-25 11:59:01 · 325 阅读 · 0 评论 -
Android lk启动流程
Andorid 7.1.1 lk启动流程little kernel 是小内核小操作系统,简称lk,主要用来引导运行OS系统,lk启动后根据一些参数值,引导启动进入不同模式。其实Android手机有四种启动方式,四种方式分别为:正常开机启动; recovery启动; fastboot启动; ffbm启动下面就以高通代码为例,分析下这四种启动方式分别是在什么条件下启动的手机上电后,会从固定的地址(固化在ROM中)加载bootloader到RAM,然后跳转到bootloader的入口函数开始执行转载 2020-08-14 09:37:37 · 1015 阅读 · 2 评论