![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 系统
sunxiaolin2016
只争朝夕
展开
-
添加Selinux权限
遇到一个selinux权限报错问题。报错信息如下:2037-12-25 00:36:12.244 2362-2362/? E/SELinux: avc: denied { find } for service=media.metrics pid=3713 uid=1002 scontext=u:r:bluetooth:s0 tcontext=u:object_r:mediametrics_service:s0 tclass=service_manager permissive=0发现system/原创 2020-08-26 19:41:04 · 1089 阅读 · 2 评论 -
线程池的封装和使用(二)
《Android线程池简介和基本应用》PriorityThreadFactory.javaimport java.util.concurrent.ThreadFactory;class PriorityThreadFactory implements ThreadFactory { private final int mThreadPriority; public PriorityThreadFactory(int threadPriority) { mThread原创 2020-07-01 19:29:51 · 322 阅读 · 0 评论 -
Android Java InputStream和File相互转化
读取一个文件的数据流。 File file = new File(path); InputStream is = new FileInputStream(path); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0;原创 2020-05-13 20:49:16 · 5304 阅读 · 0 评论 -
Android Input输入系统之五:KeyEvent按键调节音量加减流程
在上一章节,我们讲到了将按键消息传递分发给View。在ViewPostImeInputStage阶段,调用了processKeyEvent(),其中:// Deliver the key to the view hierarchy.if (mView.dispatchKeyEvent(event)) {return FINISH_HANDLED;}通过dispatchKeyEvent将...原创 2020-01-13 17:12:47 · 3468 阅读 · 0 评论 -
Android Input输入系统之四:KeyEvent事件中的InputChannel通信
经过一系列的分析,key事件的分发,中间有一个InputChannel通信。key事件发送端,InputDispatcher,属于system_server进程;key事件接收端,ViewRootImpl,是应用程序进程。这两者之间的跨进程通信就是通过InputChannel实现的。重点还是看一下InputChannel的创建过程。/** A window in the window m...原创 2020-01-11 17:42:10 · 1287 阅读 · 0 评论 -
Android Input输入系统之二:KeyEvent注入事件及事件分发流程
相关参考:Android Input输入系统之一:KeyEvent事件监听及事件分发流程Android Input输入系统之二:KeyEvent注入事件及事件分发流程在上一篇文章中,《Android Input输入系统之一:KeyEvent事件监听及事件分发流程》,讲解的是读取设备节点/dev/input/event0,并且将事件上应用层分发的流程。这篇文章讲解模拟按键消息,通过注入事件的...原创 2019-12-27 16:56:25 · 4121 阅读 · 0 评论 -
Android Input输入系统之一:KeyEvent事件监听
查看Android系统中的Input设备getevent -l # getevent -ladd device 1: /dev/input/event1 name: "synaptics_dsx"add device 2: /dev/input/event0 name: "sc-powerkey"ls /dev/input/ # ls /dev/input/...原创 2019-12-26 17:08:02 · 5420 阅读 · 3 评论 -
Android按键Input KeyEvent
使用android的Input输入系统,模拟按键音量加减。input命令adb调试命令:#音量+adb shell input keyevent 24#音量-adb shell input keyevent 25Instrumentation实现按键功能代码实现,调用接口simulateKey()public static void simulateKey(final int K...原创 2019-12-26 14:54:02 · 5304 阅读 · 0 评论 -
关于Android 供应商原生开发套件(VNDK)引发的问题
供应商原生开发套件,Vendor Native Development Kit,简称VNDK.问题引发:vndksupport:Could not load demo.so from default namespace:dlopen failed: library “libstdc++.so” not found.demo.so位于vendor下面,找不到libstdc++.so,而libs...原创 2019-12-14 19:32:21 · 5588 阅读 · 0 评论 -
Android P去掉DEX优化编译
Android P的系统编译中,采用了DEX优化编译。在系统中编译出来的文件如下:oat-arm64-SystemUI.odex-SystemUI.vdexSystemUI.apk生成了后缀为odex和vdex的文件,在调式过程中,可能会出现问题。去掉DEX优化编译的方法:1、mm WIRH_DEXPREOPT=false2、Android.mk中增加:LOCAL_DEX_PR...原创 2019-11-09 11:31:51 · 5420 阅读 · 0 评论 -
Android P Image编译
最近尝试着修改Android P的编译脚本,目的是为了将系统源码和BSP源码分开编译。相关源码:build/make/core/Makefiledevice/fsl/imx8q/mek_8q/AndroidBoard.mkdevice/fsl/imx8q/mek_8q/BoardConfig.mkdevice/fsl/common/build/dtbo.mksystem/core/fs...原创 2019-11-08 15:42:10 · 2917 阅读 · 1 评论 -
Android和Linux底层调节亮度的方法
Android内核也是linux,所以底层的驱动调节亮度的方法都是一样的。前提是驱动已经ok。adb shell 进入目录/sys/class/backlight/lvds_backlightroot:/sys/class/backlight/lvds_backlight@1 # lsactual_brightness bl_power brightness device max_brig...原创 2019-09-19 16:48:05 · 960 阅读 · 0 评论 -
Android P init.rc文件解析和使用
关于安卓中的init.rc文件,官网已经说明地非常清楚。官网资料:https://android.googlesource.com/platform/system/core/+/master/init/README.md添加链接描述init.rc解析简单来说,init.rc是安卓的初始化语音,具有固定的语法。作用是在安卓启动阶段做一下初始化操作。下面举一个使用的小例子,关于init.rc...原创 2019-09-19 15:53:11 · 1086 阅读 · 0 评论 -
Android P第三方apk系统签名问题
Installation did not succeed.The application could not be installed: INSTALL_FAILED_SHARED_USER_INCOMPATIBLEInstallation failed due to: ‘null’原创 2019-09-17 10:12:31 · 4953 阅读 · 4 评论 -
Android P系统编译Android.mk导入jar包和aar包
安卓开发中,有时候需要在系统环境下开发apk,导入第三方jar包或者so库。导入aar包:1、在模块根目录下新建文件夹libs,将需要aar包拷贝进libs.2、在Android.mk文件加入:LOCAL_STATIC_JAVA_AAR_LIBRARIES := demo3、在include $(BUILD_PACKAGE)后面加入:include $(CLEAR_VARS)LOCA...原创 2019-07-12 17:32:48 · 3912 阅读 · 0 评论 -
Android P将apk打包放进system/app无法运行的问题
有时候我们需要将apk放进系统里面去,拷贝到system/app/或者打包进system.image中。如何将apk打包进system.image请参照文章:Android P系统编译之使用PRODUCT_COPY_FILES拷贝文件或文件夹通过adb命令将apk放进system/app中:adb push C:\Users\ad\app\DemoApp.apk /system/app/D...原创 2019-07-12 20:22:46 · 2859 阅读 · 2 评论 -
Android P系统禁止闲置APP在后台使用麦克风的问题
android P的系统为了进一步提高用户的安全隐私,禁止了后台闲置应用使用麦克风。所以当一个app进入后台后,变成闲置idle状态,是无法在使用麦克风录音的。逻辑分析代码路径:frameworks\av\services\audiopolicy\service\AudioPolicyService.cpp禁止闲置app使用麦克风的逻辑是在AudioPolicyService中处理的。安...原创 2019-06-15 19:05:15 · 8001 阅读 · 6 评论 -
Android P设备SSL证书报错
最近在做高德地图SDK开发,遇到一个SSL证书报错的问题,虽然该问题出现概率极低,还是记录一下,以防止以后遇到类似的问题。报错信息如下:System.err: javax.net.ssl.SSLHandshakeException: Chain validation failedSystem.err: at com.android.org.conscrypt.ConscryptFil...原创 2019-07-10 10:02:14 · 4499 阅读 · 0 评论 -
Android解压apk包
1、使用apktools进行反编译apk下载地址:https://ibotpeaches.github.io/Apktool/#命令:apktool d app-release.apk原创 2019-07-16 15:36:50 · 2672 阅读 · 0 评论 -
Android P获取系统IMEI码、ANDROID_ID
IMEIIMEI国际移动设备识别码(IMEI:International Mobile Equipment Identity)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。IMEI码由GSM(全球移动通信协会)统一分配...原创 2019-07-12 11:50:05 · 7525 阅读 · 0 评论 -
Android Stuio导入jar包和aar包
导入jar包:直接将需要jar包放入libs文件夹即可。导入aar包:将需要的aar包放入libs文件夹,在build.gradle新增implementation fileTree(include: [’*.aar’], dir: ‘libs’)dependencies { implementation fileTree(include: ['*.jar'], dir: 'lib...原创 2019-07-12 15:20:19 · 1027 阅读 · 0 评论 -
Android代码中while()循环CPU资源占用率100%的问题
最近通过JNI程序写了一个打开、读写串口的代码,发现程序跑起来后CPU资源占用率达到了100%的问题。代码段如下:while (pCSerial->m_bReadThreadRuning){ //读取一个串口设备 length = read(pCSerial->m_hComm, recvBuf, 64);}代码逻辑很简单,就是循环去读取串口数...原创 2019-07-19 14:07:06 · 1912 阅读 · 0 评论 -
Android P后台服务被终止,创建永不终止的后台服务
Android中服务分为前台服务和后台服务。前台服务需要通知用户一个Notification,表示用户正式使用该服务;后台服务运行在后台,不需要通知用户启动了该服务。然后后台服务在空闲状态被终止,打印如下:system_process W/ActivityManager: Stopping service due to app idle: u0a66 -1m44s91ms com.ad.d...原创 2019-07-24 19:26:44 · 3349 阅读 · 0 评论 -
Android Application中的onTerminate()方法不会被回调的问题
在Application中,可以继承实现onTerminate()方法,顾名思义,这个方法是在Application退出的时候调用的。然后在Application退出后,onTerminate却没有得到调用。官方解释:/**This method is for use in emulated process environments. It willnever be called o...原创 2019-07-30 09:09:53 · 5695 阅读 · 0 评论 -
Android后台Service已死 WorkManager崛起
后台服务已死Service是可以在后台执行长时间运行的应用程序组件,它不提供用户界面。Service分为前台服务和后台服务,我们这只讨论后台服务,所以后台服务的目的:在后台执行长时间的任务。从Android O之后的系统,安卓对服务的使用做了越来越多的限制。安卓官网的说明:https://developer.android.com/about/versions/oreo/backgro...原创 2019-07-25 20:41:21 · 3401 阅读 · 0 评论 -
android P广播权限问题Background execution not allowed: receiving Intent和系统受保护广播问题调查
1、隐式广播权限android O系统后,隐式广播收到的限制,一定要指定包名才能发送出来。否则会报错:Background execution not allowed: receiving Intent { act=android.bluetooth.anw.action.PAIR_REQUEST flg=0x10 (has extras) } to com.anwsdk.sample/.B...原创 2019-08-22 15:54:10 · 4377 阅读 · 0 评论 -
Android P系统编译之使用PRODUCT_COPY_FILES拷贝文件或文件夹
Android开发中有一个常见的需求,就是把我们App开发的应用,拷贝到system/app目录下,当成一个系统级应用,然后一起打包升级。Android系统编译生成目录:out\target\product<platform-name>Android编译mk文件目录:build\core我是在build\core\envsetup.mk中进行修改的:增加:#PRODUCT_C...原创 2019-06-14 20:17:13 · 12222 阅读 · 0 评论