系统开发
文章平均质量分 67
xiaozheng532345722
学无止尽~
展开
-
android 客制化系统签名文件
1.源码环境下切换到development/tools2.运行说明:即切换到development/tools下 执行./make_key releasekey .............. 是直接执行./make_key +国家省份等个人信息的语句 然后输入密码–development/tools/make_key releasekey '/C=CN/ST=BeiJing/L=HaiDian/O=MediaTek/OU=WCD/CN=demo/emailAddress=demo@mediatek.原创 2020-06-28 16:08:02 · 1290 阅读 · 0 评论 -
android 通过platform.pk8,platform.x509.pem生成jks签名文件
1.将keytool-importkeypair-master文件(见附件)放系统源码下,拷贝源码下的platform.pk8,platform.x509.pem,signapk.jar到此文件根目录下build/make/target/product/security/platform.pk8build/make/target/product/security/platform.x509.pem/out/host/linux-x86/framework/signapk.jarkeytool-im原创 2020-06-28 15:58:18 · 4793 阅读 · 2 评论 -
android 系统解耦思想-设置与framework
可以理解android系统本身就是一个大的apk,而launcher,设置等apk就是这个大的apk中的某个模块的功能,各个功能模块各司其职,实现各自的功能 那系统这个大的apk来如何解耦了,原生android系统功能最多的apk就是设置,设置基本上涵盖了所有常用的功能模块,以下以8.0设置中的休眠功能为例来说明,入口是在设置中设置休眠时间,然后具体逻辑功能实现是在framewor...原创 2019-12-20 16:31:42 · 757 阅读 · 1 评论 -
android 系统开发入门(五) 系统服务介绍
1.AccountManagerServiceAndroid账户服务,提供了对账户、密码、授权的集中管理。2.AccessibilityManagerService辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果,View的点击、焦点等事件分发管理服。3.ActivityManagerServiceAndroid framework框架核心服务,管理整...原创 2019-11-21 10:23:55 · 256 阅读 · 0 评论 -
android 系统开发入门(二) mm 单独模块编译调试说明
1.单独编译完成后会在out\target\product\平台名称\下生成相应的文件,此目录下的文件对应机器内的相应路径,如果是apk的调试,则一般通过mm之后会在system\app或者system\priv-app下生成相应的目录下生成新的apk文件1)system\app为系统常用的apk的目录,system\priv-app为系统核心应用如launcher,setting,system...原创 2019-11-20 20:17:12 · 689 阅读 · 0 评论 -
android 系统开发入门(一) 启动及编译过程介绍
1)android启动阶段通常是3个阶段:第一个阶段未uboot,即上电开机到驱动加载前,通常看到的现象为进入开机logo前的阶段;第二个界面为kernel阶段,即驱动加载阶段,通常看到的现象开机动画显示的前一阶段;第三个阶段为android启动阶段,即由孵化器ZygoteInit启动系统各个服务,系统各个服务启动完成后会走systemready回调,之后启动systemui服务,之后会遍历...原创 2019-11-20 20:16:32 · 336 阅读 · 3 评论 -
android 系统开发入门(三) 源码目录简介
abi 应用程序二进制接口art 全新的ART运行环境bionic 系统C库bootable 启动引导相关代码,recovery模式相关的代码build 存放系统编译规则及generic等基础开发包配置,用来定制各种编译规则,主要由makefile组成,涉及编译原生配置信息,包括预置apk等cts Android兼容性测试套件标准Customer 原生无此目录,有的用于客制化信息目录...原创 2019-11-20 20:15:43 · 222 阅读 · 0 评论 -
android 系统开发入门(四) 系统开发常用调试编辑目录介绍
1.framework相关frameworks/base/core/java/com/android/internal/os/ZygoteInit.java android初始化frameworks\base\core\java\android\os os类路径 android.view. android.os.frameworks\base\core\java\android\view...原创 2019-11-20 20:15:10 · 407 阅读 · 0 评论 -
android 各种view的显示及隐藏流程
通过网上查资料,自己看源码及加log打印调试得出的结论如下1.android所有的可视的界面可以分为activity,dialog,poupwindow,toast,windowview2.所有的view在显示和隐藏时都会走系统的统一的接口,并且在系统的接口中是加处理是可以拿到view的宽高,及所在的位置坐标值3.所有view在显示前都会执行WindowManager.addView(Vie...原创 2019-10-31 16:45:04 · 3425 阅读 · 0 评论 -
android apk如何引用系统framework.jar,settingslib.jar
一、引用framework.jar1.首先需要通过源码编译获得framework.jar包,实际源码编译后在out下生成classes.jar 即apk中需要导入的framework.jarout\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar2.将jar包放入工程libs下面,然后配置build...原创 2019-10-31 16:28:56 · 4391 阅读 · 0 评论 -
android 系统数据库Settings的使用整理
概述:做系统或者系统应用开发时经常会需要用到跨进程通信,并且需要传递状态值时,可以通过系统数据库的属性进行通信,比如原生系统的设置中的设置休眠时间,usb调试开关等,都是通过Settings.apk中通过选择项设置一个属性值,然后再在framework中的相应模块中通过ContentObserver中的onchange去实现具体的逻辑以达到功能模块的解耦以及跨进程通信的目的,且系统数据库中的值类似...原创 2019-04-25 10:26:14 · 5555 阅读 · 0 评论 -
android SystemProperties属性的使用
首先需在system.prop中添加persist.sys.camera_switch=1之后需要make后才会在out下面的build.prop中生效,或者调试的时候将build.prop导出来,手动添加,然后再push进去替换,adb shell chmod -R 644 system/build.prop 每次push一次之后,需要运行此命令 否则会开机开不了然后代码中调用为import a...原创 2018-04-16 14:59:30 · 3217 阅读 · 0 评论 -
android 添加gms包-7.0
1.打包步骤先将解压的partner_gms复制粘贴到vender下面,然后在device\xxx\xxx\full_xxx_.mk中添加,#xiaozheng addBUILD_GMS := yes注:实际是使device\mediatek\common\device.mk中的ifdef BUILD_GMSifeq ($(strip $(BUILD_GMS)), yes)$(call inher...原创 2018-04-17 11:54:34 · 3941 阅读 · 0 评论 -
android 使能/禁用四大组件pm.setComponentEnabledSetting无效
pm.setComponentEnabledSetting无效可能是因为获得pm的context不对,获得pm的context要一一对应,context获得时候的包名类名要与实际禁用掉的包名类名一致,如果需要禁掉多个图标时,需要多个context获得的pm去setComponentEnabledSetting举例:应用场景为切换用户的时候要求禁用掉桌面某个或多个图标frameworks\base\...原创 2018-04-17 14:21:08 · 2213 阅读 · 1 评论 -
android 桌面图标属性相关
launcher3的桌面有apk的图标属性是因为清单文件的<category android:name="android.intent.category.LAUNCHER"/>这个属性,所以一个apk可以有多个桌面图标属性,比如Velvet.apk(- -。很多人不知道这个就是google.quicksearchbox这包名对应的apk,主要是包名和apk名字不一致,以前我也找了好久)...原创 2018-04-17 14:45:37 · 701 阅读 · 0 评论 -
android 抓包名类名方法相关
抓包名类名方法很多,最方便的是用adb命令adb shell dumpsys activity top |more 点击回车显示下一行,按ctrl+c退出我以前用的是adb shell dumpsys activity后面发现包名类名长的时候会显示不全,不方便还有一种方法是用sdk自带的sdk\tools\hierarchyviewer.bat去抓,双击后可以看到包名和类名...原创 2018-04-17 15:14:31 · 458 阅读 · 0 评论 -
android NVRAM读写方法
0.前言:有的时候业务需要读写NVRAM里面的数据,比如读MAC地址或者自定义NVRAM节点然后读写操作其节点值(NVRAM里面的值恢复出厂设置后还存在)1.实际在需要读写nvram的地方导入NVRAMUtils.java和NvRAMAgent.java文件(注意文件的包名与添加的路径要一致),然后用NVRAMUtils.readNvRAMFile(NVRAM的路径名)和writeNvR...原创 2018-04-16 10:24:10 · 4365 阅读 · 0 评论 -
SettingsProvider\res\values\defaults.xml 属性
frameworks\base\packages\settingsprovider\res\values\defaults.xml <bool name="def_lockscreen_disabled">false</bool> 锁屏<integer name="def_lockscreen_sounds_enabled">0</integer&...原创 2018-04-16 13:57:04 · 1061 阅读 · 2 评论 -
常用adb命令行
adb root 赋予root权限adb remount 赋予可push/删除等操作文件权限adb shell am start com.android.settings/.Settings --adb命令跳转设置apkadb shell am start com.android.launcher3/.Launcher --adb命令跳转桌面apkadb shell am start co...原创 2018-04-16 14:27:31 · 687 阅读 · 0 评论 -
常用ubantu-linux环境操作命令行
mkdir 创建文件rm -rf 删除文件grep 'xxx' ./ -Rn 搜索xxx字符串find -name XXX.java 搜索XXX.java文件find -name "*.mk" 批量查找某个后缀名的文件find . -name "*.git" | xargs rm -rf 批量删除某种类型的文件cp RKSDK/rkXXX/* myRk/rkXXX -r 复制文件夹下的所有文件...原创 2018-04-16 14:41:57 · 656 阅读 · 0 评论 -
android 系统常用Androd.mk文件语句解释-整理
==========LOCAL_DEX_PREOPT := false 直接打包生成.apk 不会附带生成.odex文件了======================LOCAL_PATH:= $(call my-dir) 用于确定源码所在的目录,最好把它放在CLEAR_VARS变量引用的前面,因为它不会被清除,每个Android.mk只需要定义一次即可,表示LOCAL_PATH的值...原创 2018-04-16 15:01:09 · 534 阅读 · 0 评论 -
android frameworks下面config.xml属性
frameworks\base\core\res\res\values\config.xml属性 <integer name="config_lowBatteryWarningLevel">20</integer> 低电量报警 <integer name="config_lowBatteryCloseWarningBump">5</in...原创 2018-04-21 10:33:46 · 1940 阅读 · 0 评论 -
android系统开发-心得体会
记得最开始搞android培训出来那会,开始都是简历造假去找的工作,那时也没接触过系统开发,当时也就像想着能找到个工作就不错了,而当时第一份工作就是做系统开发,虽说那时工作也不怎么忙,但也算是入了个行,基本的东西还是熟悉了。 个人感觉自己培训出来java基础和做过类似apk的培训或者做过apk开发的做系统开发还是有一定优势的,昨天同事问个代码关于接口回调的,感觉做系统开发的同事jav...原创 2018-04-17 11:41:03 · 5337 阅读 · 2 评论 -
android 源码编译中的overlay属性
当你很有把握确定修改的是那个文件实现某个客制化需求的时候,但是实际修改又没起作用的时候,你就应该考虑到有没有被overlay了1.什么是overlay?简单一点来说就是覆盖的意思,比如mtk的平台的overlay文件里面路径下面config.xml里面有config_supportMicNearUltrasound属性,而实际正常的源码frameworks\base\core\res\res\va...原创 2018-04-17 17:16:12 · 1635 阅读 · 0 评论 -
android 系统 读写底层节点方法
1.底层提供路径,可先通过cat和echo分别读写确认节点值是否生效举例节点路径为sys/devices/11050000.i2c/i2c-0/0-003c先cd sys/devices/11050000.i2c/i2c-0/0-003c然后echo w4444444444> led_switch然后catled_switch 可以读出具体值说明:如果节点读写出现权...原创 2018-04-13 17:17:57 · 2152 阅读 · 0 评论 -
android 查看界面控件id
最常用的是用eclipse/as的ddms去查看控件id,然后通过显示的界面去点击各个控件,右下角就会显示控件id了,这个在系统开发的时候对于快速定位界面在代码的位置很有帮助,通过找到界面id然后估计是在那个apk里面,然后用grep去找那个id就可以定位到具体的代码是那个类里面了。补充:ddms缺点是不能获得systemui的状态栏和导航栏的控件id,这个就需要使用hierarchyviewer...原创 2018-04-17 16:59:19 · 9822 阅读 · 0 评论 -
android 预置apk总结
1.概述:介绍预置apk的种类,流程及具体方法2.预置apk方法分类:预置apk按有无源码分的话可以分为两种,一种是有apk源码的预置方式,一种是无源码的预置apk方式,区别是mk文件写发不同;按预置的用途分的话可以分为3种,一种是预置apk不可删除,一种是可删除恢复出厂设置后还存在,一种是可删除恢复出厂设置后不存在,区别 也是mk文件写法不同3.预置apk的流程3.1首先系统原生的apk的方法一...原创 2018-04-16 13:46:01 · 1726 阅读 · 0 评论 -
android 系统数据库Settings属性使用及相关介绍
1.用途及作用:alps\frameworks\base\core\java\android\provider\Settings.javaSettings下的属性实际分为System,Global等,一般作用是用于存储系统默认属性值,通过监听读写属性值的变化执行相关的逻辑修改系统属性值,也可以用于系统间跨进程通信。2.基本使用:2.1读字符串Settings.System.get...原创 2018-04-16 10:06:50 · 7552 阅读 · 0 评论