android系统开发
文章平均质量分 88
怒草
一屋两人三餐四季
展开
-
Android N音频播放延迟
背景 在Android N上使用MediaPlayer进行高频率的音频播放,会出现很严重的声音播放延迟的问题。比如快递业务场景,在业务员正确扫描快递面单后,需要播放一个声音来提示业务员该面单已经扫描完毕,可以进行下一单扫描。业务员也是通过这个声音来作为判断标准,只有在听到声音播放的情况下才会认为这个面单已经录进了系统(出现漏扫漏件是要扣钱的),才敢进行下一个快件的扫描。这个场景需要很高的工作效率,平均每个人每秒钟会扫描3-4个快件,也就是提示的声音每秒钟需要播放3-4次。这种条件背景下,如...原创 2021-04-09 18:33:41 · 2058 阅读 · 1 评论 -
Android原生系统开发如何优雅的提供系统级的API供第三方程序调用?
目录故事背景一、对外提供接口有哪些方式?二、开发步骤Step1.添加一个专属系统级服务2.1.1.模仿Android原生服务接口,如WifiManager,规划自己的Manager2.1.2.为我们的Manager生成AIDL2.1.3.编写系统级服务2.1.4.注册服务2.1.5.初始化服务2.1.6.添加编译规则2.1.7.为新服务添加SELinux权限Step2.打包SDK,供第三方程序调用2.2.1.打包SDK2.2.2.使用SDKStep原创 2020-11-03 10:49:16 · 6009 阅读 · 22 评论 -
浅谈Android Print Service
Google 为了支持移动设备打印功能在Android4.4加入了printservice打印框架。既如果你想让你的打印机能够在Android系统上完成打印工作,那么一种可选的方式就是按照Google提供的打印框架来实现相关打印机的各种功能,包括发现打印机、预览、设置打印参数、打印等工作。当然,在Android设备上实现打印功能的技术多种多样,早在Google推出打印框架之前就已经有软...原创 2019-12-19 18:19:00 · 4531 阅读 · 1 评论 -
failed to set system property
Android SystemProperties.set概述 在对Android操作系统进行开发的过程中,经常需要使用到Android的隐藏API SystemProperties.set(String key, String value) 这个接口,写入一些属性值存放到系统共享内存,配合SystemProperties.get(String key) 这个接口可以很方便的实现某些功能。由...原创 2018-12-07 17:22:47 · 16789 阅读 · 0 评论 -
Android DevicePolicyManager 设备管理
Android 设备管理概念简述Android已然成为用户基数最大的智能手机系统,随着各行各业的加入,Android的不足之处也逐渐显现出来,显然有很多特殊行业并不适合使用Android系统。Google为了应对不同用户群体,慢慢的完善推出了DevicePolicyManager。DevicePolicyManager,设备策略管理器。顾名思义,DevicePolicyManager为An...原创 2018-12-03 13:54:04 · 5313 阅读 · 5 评论 -
Android Device Administration 应用的能力
Device Administration概述DeviceAdmin是Android2.2引入的方案,通过用户授权自己的应用设备管理权限后,可以在代码中修改一些系统设置,主要的功能是围绕锁屏这一块对权限比较“敏感”的区域。Android系统在同一时间可以拥有多个Device Admin程序,并且可以有多个同时处于激活状态。Device Administration 在Android9.0(A...原创 2018-12-03 15:17:46 · 5217 阅读 · 0 评论 -
Android ProfileOwner 应用的能力
Profile Owner概述ProfileOwner 译为配置文件所有者,在Android5.0系统推出。ProfileOwner涵盖了所有DeviceAdmin用户的管理能力,并且额外添加了很多管理权限。Android系统只能设置一个Profile Owner程序,并且该程序在设置为ProfileOwner后不能取消,应用不能卸载,唯一可以取消的途径是恢复出厂设置。ProfileOwne...原创 2018-12-03 15:22:08 · 5544 阅读 · 0 评论 -
Android DeviceOwner 应用的能力
Device Owner概述DeviceOwner 译为设备所有者,在Android5.0系统推出。DeviceOwner涵盖了DeviceAdmin用户的所有管理能力,也涵盖了ProfileOwner的所有管理能力,并且在这些基础上额外添加了一些管理权限,如重启设备、禁用状态栏等。Android提供的三种权限管理策略的能力大小依次为 DeviceAdmin < ProfileOwner...原创 2018-12-03 15:26:07 · 16426 阅读 · 1 评论 -
一键设置 DeviceAdmin/ProfileOwner/DeviceOwner 应用
一键设置DeviceOwner概述Android提供了三种设备管理方案,Device Administration(设备管理员), ProfileOwner(配置文件所有者)和 DeviceOwner(设备所有者)。这三种管理方案对应三种等级的管理权限,相对的,等级越高所拥有的管理权限越高,面临的风险也对大,所以,要将一个应用设置成为这些管理设备,也需要不同的权限等级。设置 Device ...原创 2018-12-03 15:36:53 · 19246 阅读 · 30 评论 -
Android8.0 静态广播的接收方式改变
Android O 广播机制的改变 在Android O之前,Broadcast广播作为Android系统的四大组件之一,其使用简单,操作方便,占用资源小等优点,使其成为了Android开发中最常用的夸进程通讯方案(比AIDL、ContentProvider使用的更为频繁)。但由此带来的隐患也是显而易见的,并且这种隐患快要达到不可控制的地步。主要表现在:导致大量的第三方应用程序开机自启...原创 2018-12-29 13:51:59 · 3537 阅读 · 0 评论 -
java.lang.SecurityException: Permission requires the provider be exported, grantUriPermission()
java.lang.SecurityException: Permission Denial: reading … requires the provider be exported, or grantUriPermission()声明:我没有从本质上解决这个问题,只能通过其它的办法绕开这个问题。最近开发应用程序静默安装功能,并且不想改动系统原有的安装应用的框架,因为万一有什么问题会影响系统稳...原创 2018-11-08 17:12:10 · 6800 阅读 · 0 评论 -
Android O 在源码中打包具有系统API功能的jar包
我们在开发中经常要封装一些接口, 打包成jar包供app调用. 有时候我们需要打包一些具有系统API功能的jar包, 这时就需要在源码中去编译jar的源文件. 我在Android O的项目上开发应用程序时, 需要用到系统的一些功能, 想在源码中打包出一个功能丰富的jar包, 然后在IDE中使用, 比如Eclipse中使用, 这中间碰到了很多问题.使用BUILD_JAVA_LIBRARY...原创 2018-07-31 12:40:41 · 3340 阅读 · 1 评论 -
Android O 添加系统服务错误 add_service uid=1000 - PERMISSION DENIED
最近在Android 8.1上添加了一个叫scan的系统服务(如何添加一个系统服务不做介绍), 在其它应用中调用这个服务: private ActionScanManager mScanManager; private void test(Context context) { if (context == null) return; mScanM...原创 2018-07-26 15:08:55 · 3698 阅读 · 0 评论 -
Android4.3 屏蔽HOME按键返回桌面详解(源码环境下)
首先声明我是做系统开发的,原创 2014-04-17 15:07:37 · 15623 阅读 · 9 评论 -
Android 系统自动重启Bug(高通平台)
最近客户反馈了一个Bug,安原创 2014-04-18 18:41:30 · 11609 阅读 · 3 评论 -
Android应用层修改LED指示灯
今天真是原创 2014-04-23 17:31:48 · 14222 阅读 · 5 评论 -
在framework中添加字符串资源
又是一个星期一,淡疼! 在frame原创 2014-04-28 20:26:14 · 3823 阅读 · 1 评论 -
AIDL在android系统中的作用
AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。最近看了下AIDL在Android系统中的用法,在网上看到很多初学的朋友不太明白AIDL的实际作用,android提供了很多进程间通信的组件,像action、broadcast、contentprovide都可以实现进程间原创 2015-01-15 16:15:57 · 4888 阅读 · 1 评论 -
Android4.4 无Proximity Sensor的设备拨号中实现自动灭屏
现在的电子产品越来越人性化,用户友好化,在给用户带来全新体验的同时,也在改变着人们的日常生活,所以说科技是伟大的,创新是伟大的。 随着移动设备的多元化发展,各种微型芯片的嵌入,使得它的功能越来越强大。比如各种各样的Sensor,最常见的一种是Proximity Sensor,现在的品牌机几乎都具备,也就是在打电话的时候,为了避免误操作,在电话接近耳朵的时候让手机处于灭屏状态,要实现这一功原创 2015-01-23 15:26:35 · 5149 阅读 · 1 评论 -
Android Jni使用案例
Android上层和C/C++层通信可以通过JNI实现,具体做法有两种:一:采用默认的本地函数注册流程 1). 编写带有native方法的Java类; Gpio.java 代码: package com.prowave.jnitest; public class Gpio { public String printJNI(St原创 2016-05-26 15:12:21 · 2143 阅读 · 0 评论 -
Android O 源码中编译程序, 关于32/64位so库兼容问题的记载
由于项目需求,需要在Android O系统中加入第三方库, Android O 默认编译的是64位操作系统, 第三方公司提供了32位和64位的库, 但是在实际应用过程中还是遇到了种种问题, 在此做个记录, 希望遇到同样问题的小伙伴们不要掉入相同的坑.具体分为以下几个问题:系统是怎样判断一个应用是32/64位架构 如何在源码中将自己写的应用编译成32/64位 系统级应用如何使用apk自身...原创 2018-07-23 11:27:05 · 11237 阅读 · 1 评论 -
android4.3 解压、打包boot.img新脚本
要解压boot.img原创 2014-05-09 18:21:06 · 12073 阅读 · 13 评论