android-framework
文章平均质量分 87
ansondroider
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
RK3568 Android 11 蓝牙BluetoothA2dpSink 获取用于生成频谱的PCM
音乐频谱是声音频率的分布图。声音是由不同频率的声波组成的,这些声波的振幅(强度)不同,就形成了不同的音色。频谱图就是将这些频率和振幅的关系用图形表示出来。RK3568 Android 11 中, 如何在A2dpSink中获取用于生成音频频谱的PCM数据原创 2024-08-28 16:26:10 · 1071 阅读 · 1 评论 -
Android AOSP 编译并烧录到Google Pixel4XL
AOSP(Android Open Source Project)是Android系统的开源版本,任何人都可以下载、编译和修改。手头上有一台Pixel 4XL,尝试编译AOSP并将其烧录到的设备上。原创 2024-06-24 23:14:21 · 947 阅读 · 0 评论 -
Android 11 低电量自动关机失效
基于RK3568 Android 11 系统开发过程中, 移植了电源和电池相关的驱动后, 测试发现低电自动关机的功能失效了, 基于源码SDK排查问题过程记录原创 2024-06-08 21:27:47 · 883 阅读 · 0 评论 -
Android 11 裁剪系统显示区域(适配异形屏)
在显示技术中,"OverScan"(超扫描)是一种调整显示图像边界的技术。通常情况下,OverScan 会在显示屏的边缘周围裁剪一小部分图像。这种裁剪是为了确保显示内容在屏幕上的完整可见性,尤其是在老式电视或投影仪等设备上,可能存在图像边缘出现失真或过多噪点的问题。OverScan 通过裁剪图像边缘,可以隐藏显示器边缘的任何不完美之处,例如边缘上的噪点、失真或黑边。这有助于确保图像在屏幕上的边缘部分看起来整洁且不受干扰,提供更好的观看体验。原创 2024-04-27 11:23:57 · 1651 阅读 · 2 评论 -
Android 7.1 允许应用访问该USB设备弹窗
Android的USB开发, 经常碰到权限的问题, 比如, 本文所提及的一类弹窗: 允许应用”XXX应用”访问该USB设备吗?在RK3128 android 7.1的平台上, 碰到的问题是, 勾选了: 默认情况下使用该USB设备 后, 每次拔插USB 设备, 弹窗还是会出现原创 2024-02-28 09:40:25 · 2039 阅读 · 0 评论 -
Android使用ScrollView导致鼠标点击事件无效
Android中, 添加到ScrollView中的控件, 在使用鼠标作为输入设备时, 某些特定的条件下, 子控件的点击事件无效原创 2024-02-01 16:11:45 · 1199 阅读 · 0 评论 -
Android12 WIFI 无法提供互联网连接
ConnectivityService是Android系统中负责处理网络连接的服务之一。它负责管理设备的网络连接状态,包括Wi-Fi、移动数据、蓝牙等。Android12 中的Wifi连接, 单无法提供互联网连接修改记录原创 2023-12-05 16:29:03 · 1609 阅读 · 1 评论 -
Android 12 打开网络ADB并禁用USB连接ADB
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。尝试修改adb显示名称, 单独打开网络调试.原创 2023-11-27 13:49:55 · 1598 阅读 · 0 评论 -
Android 12 客制化修改初探-Launcher/Settings/Bootanimation
Android12 使用 Material You 打造的全新系统界面,富有表现力、活力和个性。使用重新设计的微件、AppSearch、游戏模式和新的编解码器扩展您的应用。支持隐私信息中心和大致位置等新的保护功能。使用富媒体内容插入功能、更简便的模糊处理功能、经过改进的原生调试功能等提高工作效率.本文用于记录一些基于RK3588 Android12 的客制化修改内容原创 2023-11-15 18:41:36 · 1107 阅读 · 0 评论 -
Android EditText setTranslationY导致输入法覆盖问题
输入框使用了setTranslationY() 位置偏移后, 输入法无法正确获取焦点的位置。原创 2023-09-09 15:47:35 · 549 阅读 · 0 评论 -
Android TvSettings Bug: 密码框无法点击唤起输入法
Android 10 的Box方案, 默认使用的是TvSettings作为系统设置,输入操作的习惯上是使用鼠标,键盘,遥控,日常的场景是没有问题,也不会出现本文中提及的问题。当外接的USB触摸屏后,出现无法点击WIFI密码框换出输入法进行输入密码操作。从图1开始添加WIFI,并准备输入密码时,外接的USB触摸屏没有办法点击唤起输入法。原创 2023-07-14 15:23:02 · 1372 阅读 · 0 评论 -
Android 全局黑白化-模拟颜色空间
在一些特殊的日子,如默哀日、灾难日,纪念日,哀悼日等,许多的APP、网页、海报等都开始使用黑白色主题。Android 的全局黑白实现方案,可以考虑使用模拟颜色空间的方法。借助硬件加速渲染选项,您可以利用基于硬件的选项(如 GPU、硬件层和多重采样抗锯齿 (MSAA)针对目标硬件平台优化应用。点按模拟颜色空间可以更改整个设备界面的配色方案。此设置下面的选项是指色盲类型。已停用(无模拟配色方案)全色盲(配色方案限于黑色、白色和灰色)原创 2023-06-17 21:26:20 · 1237 阅读 · 0 评论 -
RK356X 解除UVC摄像头预览分辨率1080P限制
UVC:USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟视频转换器、电视卡及静态视频相机。RK356X只支持1080P及以下分辨率的预览。然而,把摄像头接入到PC上,不管是LINUX还是WINDOWS,会发现实际支持的最大预览分辨率是:3840x2160缺少的分辨率哪去了?原创 2023-04-18 14:36:57 · 2292 阅读 · 4 评论 -
Android RenderScript 浅谈
RenderScript是一个Google出品的,在Android平台上的并行计算框架,官方的简介是说RenderScript运行时可在设备上提供的多个处理器(如多核 CPU 和 GPU)间并行调度工作。在日常Android开发中,RenderScript主要用于图像处理。比如对图片做高斯模糊等,都可以用RenderScript处理。原创 2023-04-02 19:46:43 · 1427 阅读 · 0 评论 -
Android Activity中捕获KEYCODE_DPAD_CENTER按键
Activity可以正捕获到按键的down和up事件, 当输入DPAD_CENTER按键是后,只接收到了一次ACTION_UP, 且Activity后续onKeyDown、onKeyUp都没有监听到按键进来。原创 2023-03-13 12:33:32 · 1251 阅读 · 1 评论 -
Android 11 旧版本兼容修改:TelephonyManager的getDeviceId和getSubscriberId; WifiManager.setWifiEnabled
随着Android的更新,越新的版本收紧的权限越来越多,伴随着很多曾经可用的接口慢慢地出现了问题。原创 2023-02-15 09:49:31 · 3260 阅读 · 0 评论 -
Android 11 SystemUI(状态/导航栏)-状态栏下拉时图标的隐藏与通知面板的半透黑色背景
Android 11 SystemUI1. 状态栏下拉时图标的隐藏2. 通知面板的半透黑色背景原创 2023-02-01 21:06:38 · 2955 阅读 · 0 评论 -
Android 11 SystemUI(状态/导航栏)-图标按键的深浅色
自 Android 5.0 版本,Android 带来了沉浸式系统 bar(状态栏和导航栏),Android 的视觉效果进一步提高,各大 app 厂商也在大多数场景上使用沉浸式效果。6.0开始提供了View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR标志位,将状态栏设置为浅色模式, 清除掉这个标志, 可以恢复为深色模式.Android M如何设置状态栏图标黑白色。原创 2023-01-08 19:49:24 · 3640 阅读 · 0 评论 -
Android 11 的状态栏的隐藏
Android 11 的状态栏与导航栏较之前的版本有较大的差异, 在Android 7.0 SystemUI 状态/导航栏的隐藏与显示中所描述的部分内容已不再适用.比如, 自动隐藏的时间, 隐藏的动画, 较之前的版本已面目全非, 本文将对隐藏状态栏部分的内容进行一些补充.原创 2022-12-12 19:06:12 · 6089 阅读 · 4 评论 -
Android 11 ANR
如果 Android 应用的界面线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框,ANR 对话框会为用户提供强制退出应用的选项。原创 2022-10-08 09:35:39 · 747 阅读 · 0 评论 -
Andoroid 11 开机广播处理超时导致第三方应用启动延迟
RK3566 + Android 11, 在测试过程中, 发现第三方应用的开机自启时间加长了, 在显示Launcher后, 还需要等待超过1分钟的时间. 后续在查LOG中发现以以下异常LOG(Timeout of broadcast BroadcastRecord):started 60000ms ago 表明是开始于1分钟前的广播处理超时, 这时候广播会继续下发, 这时候第三方应用才开始接收到开机广播并执行相应的操作, 比如自启.原创 2022-09-17 10:59:02 · 2274 阅读 · 3 评论 -
Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)
Android 权限的变化, 几乎每个版本的SDK都会有, 其中最大的一次是在6.0时, 增加的动态权限申请。要访问管理外部存储的文件, 需增加MANAGE_EXTERNAL_STORAGE权限的申请原创 2022-09-02 20:57:51 · 37200 阅读 · 7 评论 -
Android 11 替换Launcher后导致近期任务无效
替换默认主界面, 更换为指定第三方Launcher后, 点击导航栏的RECENT键无效. 究其原因在于, 在旧版本SDK上, 删除Launcher3并不会影响RECENT的功能 , 而在新的SDK上,RECENT功能集成于Launcher3目录下, 删除 Launcher3后, 导致SystemUI调用对应的RECENT界面启动的服务失败....原创 2022-08-15 14:28:27 · 3928 阅读 · 6 评论 -
Android 7.1 设置-内存
RK3288 + Android 7.1在设置中, 查看系统内存使用情况, 源码分析记录原创 2022-07-26 20:18:46 · 1136 阅读 · 0 评论 -
RK3188 Android5.1 双屏异显副屏显示异常
RK3188 + Android 5.1 在实现了双屏异显功能后,问题并非必现,需要在特定情况下,比如本文中的问题:安装多几个应用, 就有一定概率出现 同显情况下, 看不出有问题, 当开始异显后, 副屏只亮背光而无图像信号, 切回同显也是好的...原创 2022-06-11 14:41:23 · 2007 阅读 · 0 评论 -
RK3288 Android 7.1 dumpsys meminfo 无法获取内存信息问题
RK3288 + Android 7.1dumpsys meminfo 执行后无法获取APP内存信息分析看下权限,初步判断权限的问题点:一般情况下, SELINUX的LOG会出现:然而在多次测试后, 并没有出现类似问题的LOG之后, 开始折腾这两个文件 :加了一堆关于 -EACCES的LOG, 始终定位不到问题…最后, 终于在GOOGLE上找到:frameworkkernel补丁打上, 解决dumpsys meminfo分析Linux open系统调用流程浅析op原创 2022-06-02 17:10:10 · 824 阅读 · 0 评论 -
RK3128 Android 7 BOX SDK 应用无法接收广播自启 + 眠休不黑屏问题
前言本文为继RK3128 Android 7 BOX SDK 修改为MID界面 与 RK3128 Android 7 BOX SDK 修改为MID界面-近期任务 后续.问题三方应用无法通过接收开机完成广播(BOOT_COMPLETED)完成自启.LOG如下Unable to launch app com.test/10033 for broadcast Intent { act=android.intent.action.BOOT_COMPLETED flg=0x9000010 (has ext原创 2022-05-24 11:43:48 · 1148 阅读 · 0 评论 -
Android 11 system_server 读写 SDCARD
平台RK3566 + Android 11概述在之前的SDK(Android 5, 6, 7, 8, 9)中, 增加了服务和系统接口, 方便第三方应用调用. 其中有一些功能, 需要让SYSTEM去访问内部存储的文件.常用的路径有:File f = new File("/sdcard");f = new File("/mnt/sdcard");f = new File("/storage/emulated/0");f = Environment.getExternalStorageDirect原创 2022-02-22 11:20:03 · 4450 阅读 · 4 评论 -
RK356X Android 11 增加自定义系统服务调用失败
平台RK3566 + Android 11概述为方便第三方应用调用系统功能, 增加系统服务提权并提供应用层调用开放接口, 在Android 9及以下版本已实现基本的实现步骤如下, 服务以MyService命名:在frameworks/base/core中增加 IMyService.aidl增加IMyService接口实现的应用, 可以存放在frameworks/base/packages/MyService修改frameworks/base/services启动MyService, 并增加到原创 2022-02-10 14:37:42 · 2240 阅读 · 1 评论 -
RK356X Android 11 内核编译错误
平台RK3566 + Android 11现象... Image: kernel.img is ready... Image: resource.img (with rk3566-evb2-lp4x-v10-edp.dtb logo.bmp logo_kernel.bmp) is ready...Traceback (most recent call last): File "./scripts/mkbootimg", line 317, in <module>原创 2022-01-27 00:08:26 · 4314 阅读 · 0 评论 -
RK3128 Android 7 BOX SDK 修改为MID界面-近期任务
前文RK3128 Android 7 BOX SDK 修改为MID界面一文中已经调整好了Launcher和SystemUI, 满足日常调试使用.新的问题近期任务中的任务不能拖动, 只能用于切换, 这也就导致APP开发的调试中不能通过近期任务来结束后台应用.TV模式:手机/平板模式:跟踪先看下当前的窗口信息: dumpsys window Window #2 Window{a225ed0 u0 com.android.systemui/com.android.systemui.r原创 2021-11-16 17:34:11 · 2490 阅读 · 2 评论 -
RK3128 Android 7 BOX SDK 修改为MID界面
平台RK3128 + Android 7.1目标使用Launcher3显示状态栏和导航栏把TvSettings替换为Settings原图:最终效果:1. 模块整理主要是增删一些编译模块, 如, 删除TvSettings, 加上Settingsdevice/rockchip/common/tv/tv_base.mkdevice/rockchip/rk312x/device.mkvendor/rockchip/common/apps/apps.mk删除模块: RKTvLa原创 2021-10-10 23:14:24 · 2191 阅读 · 0 评论 -
Android 7.0 SystemUI 状态/导航栏的隐藏与显示
平台Android 7.1 + RK3288概述从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏、 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的说法,给用户一种 “身临其境” 的体验。增加了 IMMERSIVE 和 IMMERSIVE_STICKY 标记,可以用这两个标记与 SYSTEM_UI_FLAG_HIDE_NAVIGATION 和 SYSTEM_UI_FLAG_FULLSCREEN 一起使用, 来实现沉 浸模式。全屏的是通过隐藏状态栏和导航原创 2021-09-09 20:32:02 · 4681 阅读 · 3 评论 -
Android can-utils
平台 Android + RK3288 7.1 / RK3399 9.0编译下载源码can-utils解码到源码目录下加载环境并执行mm报错:/rk3288/obj/EXECUTABLES/j1939cat_intermediates/j1939cat.P; sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\\\\$//' -e '/^\$/ d' -e 's/\$/ :/' < out/target/product/rk328原创 2021-06-18 15:21:32 · 927 阅读 · 0 评论 -
Android 9.0 亮度调节的变化(伽马曲线)
平台 RK3399 + Android 9.0概述 众所周知, Android 平台的上层亮度值的设置值范围为[0, 255], 在9.0之前, 亮度调节一直是线性变化, 在9.0开始, 它变成了曲线变化, 如下图: 图1-实际亮度值: 11 图2-实际亮度值: 15 图3-实际亮度值: 33 图4-实际亮度值: 105 图5-实际亮度值: 255 其中图3最直观体现与线性变化的区别, 进度条在50%原创 2021-06-10 09:09:15 · 4616 阅读 · 0 评论 -
Android 7.1 设置添加一级目录设置项-2
前文Android 7.1 设置添加一级目录设置项新增需求新增一级项, 打开指定Activity, 如下图, 在系统下添加 定时开关机, 点击后, 打开指定app(非设置内部)步骤packages/apps/Settings/src/com/android/settings/Settings.javadiff --git a/packages/apps/Settings/src/com/android/settings/Settings.java b/packages/apps/Setti原创 2021-04-28 10:15:39 · 593 阅读 · 6 评论 -
android amr-wb 编解码
平台 PX30 + Android 9.0 + AndroidStudio 4.1.3概述 在Android 平台上实现AMR-WB的编解码, 要求不高, JAVA也行, C/CPP也行, 可惜相关的资料很少. 在完成本文前, 走了一段相当坎坷的路, GOOGLE/BAIDU能给的帮助都相当的有限, 特此记录, 以祭逝去的青春和被消磨的精力.关于 AMR WB “AMR-WB”全称为“Adaptive Multi-rate - Wideband”,即“自适应多速率宽带编码”,采样频率为16kHz原创 2021-04-09 10:48:32 · 2601 阅读 · 0 评论 -
Android Spinner与自定义TextView填坑记
平台AndroidStudio: 4.1.2Gradle Plugin 4.0.0Gradle 6.1.1compileSdkVersion 30buildToolsVersion “30.0.2”前言Spinner微调框提供了一种方法,可让用户从值集内快速选择一个值。默认状态下,微调框显示其当前所选的值。轻触微调框可显示下拉菜单,其中列有所有其他可用值,用户可从中选择一个新值。以上来自官方文档使用简单的使用, 在官方文档中已经有了很简明的文档.以下贴入本坑相关代码:原创 2021-02-07 22:38:07 · 598 阅读 · 1 评论 -
Andrid 9.0 init.rc中增加启动自定义service
平台RK3288 + Android 9概述本文是基于 Andrid 7.1 启动init.rc中自定义service 关于SELINUX部分的补充说明.问题全程参照bootanimation的实现新增/修改文件列表anson@server:~/codes/rk3288_pie$ git status system/sepolicy/On branch masterYour branch is behind 'origin/master' by 6 commits, and can原创 2020-12-01 15:04:46 · 2437 阅读 · 0 评论 -
android 7.1 屏蔽按压两次电源键(KEYCODE_POWER)打开相机
平台RK3288 + Android7.1需求Android 支持通过快速按下电源键两次启动摄像头, 在新的需求中, 需要屏蔽此功能.修改frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java private void interceptPowerKeyDown(KeyEvent event, boolean interactive) { // Hold a原创 2020-11-16 10:24:03 · 1931 阅读 · 3 评论