
Android系统开发
文章平均质量分 94
系统开发中总结
binn_chern
这个作者很懒,什么都没留下…
展开
-
Android7.1 编译踩的坑
使用BUILD_PREBUILT,一些属性的值必须指定,否则会报错错误一:build/core/base_rules.mk:122: *** vendor/icetech/preinstall/app/FEMSYS_Registration: LOCAL_MODULE_CLASS must contain exactly one word, not "".build/core/ninja.m...原创 2019-10-08 11:52:24 · 2829 阅读 · 0 评论 -
Android编译应用可导入的jar包
Android使用jack编译系统后,Android.mk编译,生成的jar中是classes.dex,不能被工程引用,因此需要编译出包含*.class的jar编译方式为:在代码的目录下执行mk文件自动生成的目录,例如Himw.jar执行命令如下: mm out/target/common/obj/JAVA_LIBRARIES/Himw_intermediates/classes.jar...原创 2019-12-06 18:51:51 · 558 阅读 · 0 评论 -
Android中不打包一些apk
1、在device目录下建立Android.mkifneq ($(filter konka828,$(TARGET_DEVICE)),)include $(CLEAR_VARS)LOCAL_MODULE := remove_unused_appsLOCAL_MODULE_CLASS := FAKELOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKA...原创 2019-03-18 23:35:30 · 533 阅读 · 0 评论 -
selinux
selinux相关命令// 0--代表Permissive// 1--代表Enforcingsetenforce 0// 查看selinux开关状态getenforce// 查看进程的sContextps -Z// 查看文件权限ls -Z如果设置成permissive mode 后问题依旧,说明还有其他的权限问题约束,否则就是SELinux 方面的问题抓取SELinu...原创 2019-03-20 12:19:54 · 349 阅读 · 0 评论 -
Android权限管理
权限管理权限管理组成app中设置框架层native层kernel中selinux配置编译配置权限判断framework层对权限的判断权限管理组成app中设置1、系统app、特殊权限app、一般app2、permission定义及使用3、App Ops(运行时权限检查及申请)框架层feature权限声明及分配:frameworks/base/data/etc/platform.xml...原创 2019-03-19 08:03:01 · 488 阅读 · 0 评论 -
Android安全架构
Android安全架构安全计划概述平台安全架构Android提供的安全功能参考资料安全计划概述Android 安全计划的关键组成部分包括:设计审核:Android 安全流程在开发生命周期的早期便开始了,并会在这一阶段创建大量的可配置安全模型和设计。平台的每项主要功能都会由工程和安全资源进行审核,并且适当的安全控制机制会被集成到系统架构中。渗透测试和代码审核:在平台开发期间,Android...翻译 2019-03-21 08:52:11 · 1671 阅读 · 0 评论 -
应用沙盒
应用沙盒概念保护机制受影响模块共享文件概念Android 平台利用基于用户的 Linux 保护机制来识别和隔离应用资源,可将不同的应用分离开,并保护应用和系统免受恶意应用的攻击。为此,Android 会为每个 Android 应用分配一个独一无二的用户 ID (UID),并在自己的进程中运行。Android 会使用此 UID 设置一个内核级应用沙盒。内核会在进程级别利用标准的 Linux 机...原创 2019-03-21 09:53:20 · 2551 阅读 · 0 评论 -
Android中添加支持BT_MIC功能
、在audio_policy.conf中配对audio device例如:# add by iflytek,for remote control device transfor audio,2014.12.8# mstarvfremote { inputs { vfremote { sampling_rates 8...原创 2019-03-19 11:51:34 · 1519 阅读 · 1 评论 -
rtk蓝牙使用,需在kernel中配置选项
rtk蓝牙使用,需在kernel中配置选项CONFIG_HID_SUPPORT=yCONFIG_HID=y // hid驱动一定要打开# CONFIG_HID_BATTERY_STRENGTH is not set# CONFIG_HIDRAW is not set//如果用到智控要打开CONFIG_UHID=y /...原创 2019-03-19 11:37:41 · 1937 阅读 · 0 评论 -
蓝牙dongle热插拔方案
蓝牙dongle热插拔方案蓝牙部分:BluetoothManagerService初始化时创建一个线程,在线程中通过epoll监控/dev/bus/usb设备节点||V执行脚本finddevpath,找到在/sys/bus/usb/devices下生成的节点目录||V如果目录下uevent中的DEVNAME和/dev/bus/usb中产生的设备节点相同||V读取找到...原创 2019-03-18 23:36:37 · 1178 阅读 · 0 评论 -
蓝牙问题汇总
蓝牙接收的RSSI值很小a、host端接收有问题,天线问题b、Peripherals端发射功率不足回连不上1、设备端没有发起连接请求(bug)2、电量低(正常现象)移植存在的问题:1、不同版本移植,android系统提供的标准库不同,有些函数不支持2、移植新型芯片,要考虑板子是否有位置放,需要模组确定android平台默认配置./frameworks/base/packages...原创 2019-03-18 23:36:19 · 1481 阅读 · 0 评论 -
selinux-sepolicy配置
一、概念1. 运行模式Selinux有两种运行模式:Permissive和Enforcing。未明确配置权限,当访问时默认权限是拒绝。为方便开发调试权限配置,单个domain可设置为permissive模式,permissivedomain。 语法格式Selinux依赖于标签来匹配操作和策略,标签决定什么是允许的,套接字、文件和进程都在selinux中有标签。 Selinux决策基于分配给这些对象的标签和定义它们如何交互的策略,label的格式:user:role:type:m...原创 2021-01-21 14:18:54 · 6245 阅读 · 3 评论 -
Android6.0手动制作U盘升级包
解压命令:unzip update.zip或者使用windows下的压缩工具打开压缩文件,删除不需要的文件1.修改system文件删除system目录下其它文件只保留build.prop文件,然后需要升级的文件对应进行更新。如果是更新apk也先要进行签名。2.修改updater-script脚本文件。\META-INF\com\google\android\updater-script修改模板如下,getprop(“ro.product.device”) == “rk3288” || abor原创 2020-07-22 16:36:36 · 1249 阅读 · 0 评论 -
Android Selinux
Sepolicy在调试阶段真心很烦,有时因为一个sepolicy就导致结果与预期不一样。1. Sepolicy规则Sepolicy 规则allow sourcecontext targetcontext:class {}sourcecontext: scontexttargetcontext: tcontextclass: tclassSepolicy 文件存放的位置AOSP 7.1 system/sepolicy/OEM产商一般会有overlay, 如Nvidiade.转载 2020-07-10 09:38:50 · 1199 阅读 · 0 评论 -
Android文件系统预置权限
博文Android 文件系统的权限设置:https://blog.youkuaiyun.com/jake9602/article/details/19160819?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2Android 预制文件权限增加:https://blog.youkuaiyun.com/dengli990350982/article/details/53434260疑问在init.rc中设置权限和预置权限的区别是什么?作用范围有什么区别?原创 2020-06-10 15:54:23 · 571 阅读 · 0 评论 -
Android5.0后apk开发引用framework.jar
Android5.0后apk开发引用framework.jar问题:framework修改接口后,在应用中引用framework.jar,Android5.0之后编译framework不在是classes.jar,不能直接使用out目录下打包使用的framework.jar,该jar是做了优化后的解决:在out/target/common/obj下有classes.jar文件可以用来开发引用...原创 2020-03-06 16:51:56 · 391 阅读 · 1 评论 -
Timed out waiting for /dev/.coldboot_done
现象修改kernel的.config,增加了几个内置驱动,系统起来后,串口无法输入分析开机启动log出现Timed out waiting for /dev/.coldboot_done按照报错的地方提示原因:// Any longer than 1s is an unreasonable length of time to delay booting.// If you're h...原创 2020-03-05 17:01:02 · 1365 阅读 · 0 评论 -
增加PRODUCT_BOOT_JARS及类
在Android开发中,为了方便移植和应用开发,在Android系统之外增加的部分framework,一般都会仿照framework打包为一个jar包供应用调用。需要在device目录下的具体产品目录的mk中增加PRODUCT_BOOT_JARS的声明,不仅如此还需要在build目录下的package_whitelist.txt中声明包名,否则编译会出错。同理,可以把不需要的在这里删掉。Dem...原创 2020-02-27 16:24:22 · 3034 阅读 · 0 评论 -
高分区Localdimming方案研讨
高分区Localdimming方案研讨Localdimming方案数据处理流程高分区Localdimming附录背光 亮度 gamma 对比度的使用图像亮度调整Localdimming方案分析:电源的发热问题和屏能承受的最大温度决定电源最大功率为300W当屏显示为全白场时,如果不降功率,功率超过电源最大功率,因此需要降低背光SOC、MCU的功能,根据实际方案分配运算负载。使用什么样的...原创 2019-03-18 09:37:24 · 20965 阅读 · 2 评论 -
YUV420SP(NV21)旋转和转bitmap
转载1:https://blog.youkuaiyun.com/qq1137830424/article/details/81980673在调Camera的时候有个回调方法onPreviewFrame是返回摄像头每一帧的图像数据的,当我们需要对图像数据做处理时就需要Nv21转Bitmap,下面介绍两种方式第一种方式只需要几毫秒时间,第二种方式需要几十毫秒。第一种方式(高效)package com.my....转载 2019-12-12 11:44:55 · 891 阅读 · 0 评论 -
Android7.1使用Parcel和java通信读写问题
在Android7.1上实现一个Native service,通过Parcel的write或setData传递数据,存在字节对齐问题。当字节不对齐会被增加数据或者覆盖掉部分数据。通过实际测试规律发现,native传递到java,对齐方式如下:(len-1)%4==0,如此情况,数据可被完整传递到java(len-1)%4!=0时,最后的(len-1)%4个字节的数据被清0native通过w...原创 2019-12-09 15:56:09 · 791 阅读 · 0 评论 -
Binder详解及传输大小限制
听说你Binder机制学的不错,来面试下这几个问题:https://www.jianshu.com/p/adaa1a39a274Android中Intent/Bundle的通信原理及大小限制(Parcelable原理及与Serializable的区别):https://www.jianshu.com/p/2e6936e2de3d探究intent传递大小限制:https://cloud.tenc...转载 2019-05-15 11:10:20 · 9663 阅读 · 4 评论 -
Android 跳转系统设置+返回键
转载于:https://www.jianshu.com/p/5b123c569e611、使用方式基本范例:startActivity(new Intent(Settings.xxx));常量含义ACTION_SETTINGS系统设置界面ACTION_APN_SETTINGSAPN设置界面ACTION_LOCATION_SOURCE_SETTINGS定位设...转载 2019-10-08 09:40:49 · 5317 阅读 · 0 评论 -
Android开发搜寻demo的网址
1、github2、https://code.google.com/archive/原创 2019-07-25 09:30:07 · 783 阅读 · 0 评论 -
android串口通信
开源demousb-serial-for-android-master:https://github.com/mik3y/usb-serial-for-androidandroid-serialport-api:https://github.com/cepr/android-serialport-apiAndroidSerialportAPI:https://github.com/yuanh...原创 2019-07-24 17:30:59 · 1133 阅读 · 0 评论 -
Android ntp服务动态替换
ntp服务动态替换参考博文Android4.0 时间更新分析 NTPServer更改https://blog.youkuaiyun.com/nickzhang2010/article/details/8004560Android中通过NTP服务器获取时间功能源码分析https://blog.youkuaiyun.com/i2cbus/article/details/21550901解决方案1、关闭系统自动刷...原创 2019-04-10 20:00:22 · 1588 阅读 · 0 评论 -
Android开机动画总结
开机动画制作开机动画两个要点启动开机动画开机动画运行过程代码位置运行简介开机动画遇到的问题制作开机动画两个要点压缩时选择“存储”模式资源文件命名序号,需要和最大序号位数相同,位数不够,前面补零。如00、01、02、。。。、10、11。系统开机动画支持功能配置debug.sf.nobootanimation 为0若要关闭开机动画功能,在device目录下的mk文件中配置,确保系统开...原创 2019-04-10 19:46:34 · 7335 阅读 · 12 评论 -
配屏方法
1、配屏基本流程Android产品开发,产品成熟后,各种原因,需要配各种屏。无论使用哪个厂商的芯片,屏驱动基本都已开发,除非特殊的屏。在驱动开发的情况下,只需要按照驱动需要的参数,构建屏参数文件,编译到固件升级即可。基本流程如下:配屏说明文档和系统强相关,使用不同的系统方案,配屏文档不同,由系统解决方案方提供。2、不同系统解决方案的配屏方式2.1 rk3288配屏a. 配屏文档配屏说...原创 2019-08-13 16:33:43 · 3556 阅读 · 0 评论 -
java、native数据共享
场景: 为了提高数据处理性能,应用启动把数据库数据加载内存中,在java层使用HashMap维护内存数据,java逐条传输数据给native处理;当增删改查时,内存和数据库同时更新问题: 由于jni的缘故,高频度调用jni处理数据,每条数据量不大,jni反而成为效率的瓶颈,效率太低改进方向: 每次处理数据,native可以直接获取所有处理数据,不需要java逐条传输;不影响数据同步(增删改查)...原创 2019-05-15 11:13:43 · 594 阅读 · 0 评论 -
Android打印堆栈
Android打印堆栈java打印堆栈方法一:异常对象打印堆栈方法二:Log打印获取异常的堆栈并打印C++\C打印堆栈方法一:linux函数方法二:使用Android工具方法kernel打印堆栈注意java打印堆栈方法一:异常对象打印堆栈Exception e = new Exception("this is a log");e.printStackTrace();方法二:Log打印获...原创 2019-05-21 15:10:35 · 5444 阅读 · 0 评论 -
Android系统开发--添加新设备
Android系统开发--添加新设备了解编译层编译产品编写配置产品的Makefile配置产品的编译文件关系使用编译类型编译类型userdebug 准则利用资源叠加层定制版本设置 ANDROID_VENDOR_KEYS 以通过 USB 进行连接了解编译层编译层次结构包括与设备的物理结构对应的抽象层。下表中介绍了这些层。每个层都与上一层存在一对多的关系。例如,一个架构可以有多个板,一个板可以有多个...原创 2019-05-19 11:24:23 · 3469 阅读 · 0 评论 -
java、native内存共享--ByteBuffer使用总结
ByteBuffer使用总结一、概述二、DirectByteBuffer的使用方式1.native创建DirectByteBuffer,java通过native映射2.java层创建buffer数组,native层获取对应的native buffer3.两种方式的共同点三、总结一、概述最近做一个项目,性能不达标,在软件实现中频繁的调用jni实现java、native的数据传递,后来把数据直接放...原创 2019-07-03 10:06:11 · 3931 阅读 · 0 评论 -
Android date 命令设置系统默认时间
需要将系统的默认时间从1970年修改为2018年,按照原本的命令,应该格式如下:date -s "yyyymmdd.[[[hh]mm]ss]"example:date -s "20160606.120403" 但是在 adb shell 里面设置的时候,一直报 -s 选项无效,于是经过尝试,使用以下命令成功设置:date 1230122018.59 setdate MMDD...转载 2019-05-13 10:05:58 · 2479 阅读 · 0 评论 -
Android native绘图
Android native绘图canvas绘图硬件加速绘图surface上绘图canvas绘图思路:继承View,在onDraw获取到canvas,并把改canvas设置到native,在native用java的canvas获取java的canvas中保存的native canvas句柄;绘图完成后,通过回调通知java调用view的postInvalidate()刷新画面。参考博客:A...原创 2019-05-21 18:24:36 · 1485 阅读 · 0 评论 -
非jni attach线程操作java对象
参考博文博文链接JNI全局对象,及原生线程JNIENV传递https://blog.youkuaiyun.com/jiabailong/article/details/74940849多线程中的JNIEnvhttps://blog.youkuaiyun.com/Jefry2008/article/details/84097583总结在一个线程中,通过C++回调Java时,通过一个全...转载 2019-10-25 15:34:21 · 571 阅读 · 0 评论