- 博客(111)
- 资源 (1)
- 收藏
- 关注
原创 系统属性笔记
以ro开头的属性都是只读属性,所以不可被改变以persist开头的属性,从名字看可以知道这类属性是可持续性的,即修改之后即使重启之后,也不会变成初始值其他类型的属性,可以被读写,但是在重启之后会被重新赋初始值Makefile文件中通过PRODUCT_DEFAULT_PROPERTY_OVERRIDES字段添加的属性会加入default.prop,位于系统根目录下Makefile文件中通过...
2020-03-09 20:32:36
1243
原创 系统目录归总
文章目录1.build2.bootable3.framework4.system5.device6.package7.dalvik&art8.out1.build2.bootable3.framework4.system5.device6.package7.dalvik&art8.out
2020-03-08 01:44:28
2550
原创 浅谈android源码之dalvik
文章目录1. 初识DVM2. 虚拟机的启动过程2.1 前言2.2 init启动Zygote2.3 Zygote启动DVM2.3.1 startVm2.3.2 startReg3. 虚拟机与内存管理3.1 前言3.2 启动GC的时机3.3 标记阶段3.4 清除阶段4. 虚拟机与进程管理4.2 客户端请求4.3 处理客户端请求5. 虚拟机解析dex过程5.1 前言5.2 调用OptMain.cpp过...
2020-03-08 01:44:07
1338
1
原创 浅谈framework之PackageManagerService
文章目录前言PKMS启动过程installd底层服务启动过程解析apk过程优化过程连接底层服务过程installd实现安装过程设计模型总结前言PackageManagerService在android系统中, 主要工作负责系统应用的安装与卸载工作,由于系统中还有一个名字叫PowerManagerService的系统服务,所以下面我将他的缩写命为PKMS,防止混淆。顺便提一下,这篇文章理论基础...
2020-03-08 01:43:46
793
2
原创 浅谈framework之WindowsManagerService
文章目录1. 前言2. 简述WMS1. 前言接下来的一段时间,主要着重点会放在WMS的学习研究上,不断完善这篇文章,然后再将AMS那篇文章完善,就先告一段落了。2. 简述WMS...
2020-03-08 01:43:28
1430
原创 浅谈framework之InputManagerService
文章目录1. 前言2. 服务的启动3.dispatch1. 前言InputManagerService为书写方便,下文皆简称为IMS。IMS在前面的文章有一笔带过,这篇文章重点来学习一下这个系统服务,也是对自己学习过程的一个记录。(主要还是因为想了解特殊键值的处理过程,哈哈哈哈~)2. 服务的启动说到IMS,这里还是从服务的启动开始讲起,依然是老生常谈的模式,它是由SystemServe...
2020-03-08 01:42:44
1089
1
原创 浅谈framework之ConnectivityService
文章目录1. 前言2. 服务的启动3. ConnectivityService3.1 runDhcp3.2 runPppoe3.3 configureInterface1. 前言这篇文章,主要是对之前学习ConnectivityService的再一次回顾与加深理解。2. 服务的启动frameworks/base/services/java/com/android/server/Syste...
2020-03-08 01:41:12
1483
原创 浅谈framework之ActivityManagerService
文章目录前言进程管理内存管理组件管理总结前言OS世界的三大天尊之一,ActivityManagerService,下文将称其AMS,他的作用包括进程管理,内存管理,组件管理等,作用毋庸置疑,学习AMS,跟踪过程,弄懂原理,对系统开发定制有极大的帮助,对应用开发也可以借鉴他的架构设计自己的独有模式,并且可以全局分析上层可能出现的问题。有时间就填坑吧,哈哈哈。进程管理内存管理组件管理总结...
2020-03-08 01:40:43
435
原创 andorid系统定制白名单
修改路径:framworks/base/services/java/com/android/server/am/ActivityManagerService.java初始化白名单集合:ArrayList<String> mWhitelist = new ArrayList<String>();更新集合: private void readApplicati...
2020-03-08 01:36:10
1021
原创 20200308感悟记录
工作也将近三年了,感觉最近一段时间都进步不大,跟预想的相差甚远,归根结底主要是两个方面导致的,一个是拖延症,一个就是懒了,自认为已“满。这些年总的来说一路太顺顺利利的,腾讯系背景出身,觉得太轻松了,毅然跳出这个圈子,想吃点苦(现在想想有利有弊)。可是换了环境之后,也是没能压迫到自己,自己也在这阶段不断地下沉。就单单以技术广度来说,是肉眼可见的增加,但是对于技术深度来说,却是浅尝即止,所以我的路远远...
2020-03-08 01:31:00
790
原创 拨号键接收广播特殊使用用法
拨号键使用暗码进行相关调试用例:1 在AndroidManifest.xml中添加:<receiver android:name="com.android.settings.MyReceiver" > <intent-filter> <action android:name="android.provider.Telephony.SECRE...
2020-03-07 14:55:59
888
原创 静默安装应用方法
public void SilentInstall(String paramString){ Runtime runtime = Runtime.getRuntime(); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("pm install -r "); stringBuilder.appe...
2020-03-02 23:13:45
948
原创 回顾2019
我的2019开始是从加入新的“大家庭”说起,上天眷顾,我在新的家庭里成长的很快,学习到了很多之前没有掌握的系统知识,特别是将常见的系统服务熟悉了个遍,并且也是第一次扮演了系统中间件设计者这个角色,在这个学习的过程中,很是享受。今年学习上主要就是重新认识了一遍android系统,与所谓的上层,中间层,底层面对面,也在学习过程中逐渐摸索到了属于自己的未来之路。对了!还认识了好些有趣的工作中的小伙伴,我...
2020-02-26 21:55:14
372
原创 android系统第一次开机或者恢复出厂设置后不显示正在升级apk提示
代码修改位置:/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.javapublic void showBootMessage(final CharSequence msg, final boolean always) { //可在return之前做一些适当判断 return; ......}...
2020-02-19 10:29:55
461
原创 android系统定制硬件加速
代码位置framworks/base/core/java/android/content/pm/PackageParser.javaprivate boolean parseApplication(Package owner, Resources res, XmlPullParser parser, AttributeSet attrs, int flags, Stri...
2020-02-14 15:44:18
282
原创 linux驱动模组查看,安装与删除相关命令
1.Linux lsmod命令用于显示已载入系统的模块。执行lsmod(list modules)指令,会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入。2.Linux insmod(install module)命令用于载入模块。Linux有许多功能是通过模块的方式...
2020-02-14 14:00:09
530
原创 2020年学习工作计划(总纲)
2020年年后第一篇博客,也可以开始计划一下今年的学习计划了,目前系统服务学习的也差不多了,系统各个目录也熟悉的更多了,接下来简略计划如下:第一阶段:深入并巩固系统中间件开发第二阶段:网络模块巩固第三阶段:音视频(ffmpeg)第四阶段:记录并总结平时工作与生活学习过程...
2020-02-03 18:07:22
576
原创 关于写死bootargs实例
文章目录1. 说明2. 举例3. 原理1. 说明1.附加的内核命令行(cmdline): BOARD_KERNEL_CMDLINE在build/core/Makefile中,有以下一段内容(strip起到去除空格的作用):BOARD_KERNEL_CMDLINE := $(strip $(BOARD_KERNEL_CMDLINE)ifdef BOARD_KERNEL_CMDLINE...
2020-01-13 11:38:13
673
原创 解决编译AIDL模块出现的couldn't find import for class错误
编译Android系统源码,在package目录下新建了一个目录单独编译一个模块,里面还有AIDL接口声明,并且声明中用到了自定义的JAVA类,写入import代码后编译却报错couldn’t find import for class。这里找到的最终解决方法如下:在同目录下新建一个Test.aidl文件,并且文件中需要填写如下格式代码:package com.xxxx.xxxx;parc...
2020-01-06 14:33:02
5216
原创 反编译工具使用说明
文章目录1. 工具简介2. apktool3. dex2jar4. jd-gui1. 工具简介工具介绍:apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件我已经将需要用到的...
2020-01-02 15:12:22
304
原创 精简OTA包(一)
一. 编译源码不要生成odex 问题:1、 禁止apk生成odex:修改…/build/core/package.mkLOCAL_DEX_PREOPT := false2、 禁止jar包生成odex: 修改/build/core/java_library.mkLOCAL_DEX_PREOPT:= false 3、禁止当前apk编译生成odex,在android.mk内增加:LO...
2019-12-24 10:57:36
415
原创 Android系统去掉 USB插入调试确认框
修改位置:frameworks\base\packages\SystemUI\src\com\android\systemui\usb\UsbDebuggingActivity.java @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); if (Sys...
2019-12-24 10:32:49
1255
原创 Android系统签名
Android中的签名系统默认的四种签名类型:四组默认签名供Android.mk在编译APK使用:1、testkey:普通APK,默认情况下使用。2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。3、shared:该APK需要和home/contacts进程共享数据。4、media:该APK...
2019-12-22 14:20:46
385
原创 抓取网络包与分析网络报文的相关记录
文章目录1. 前言2. 命令解析3. Wireshark使用3.1 工具简介3.2 界面理解3.3 过滤规则1. 前言写这篇文章主要目的是为了结合日志辅助分析网络状况,算是比较基础,这也方便初学者学习理解。先来看一下它的简介:tcpdump 是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于大多数的类Unix系...
2019-12-15 13:30:58
597
原创 android系统开机默认设置修改记录
文章目录1. 前言2. 默认关闭数据3. 默认关闭蓝牙4. 默认关闭定位5. 默认关闭飞行模式6. 默认关闭wifi1. 前言简单系统设置默认系统修改,仅为做个记录。2. 默认关闭数据主要修改点:frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java...
2019-11-29 21:19:20
773
原创 对android系统学习的一些理解
学习android系统的三个阶段:从能阅读源码开始为一个阶段,学习源码编写思路为一个阶段,到编写自己的系统框架为一个阶段。还有就是学习android系统是一个漫长而有趣的过程,需要记住的是:保持谦卑,持续学习,随时记录~...
2019-11-26 00:48:14
240
原创 解读framwork/base/cmd目录下的Android.mk
代码位置:/frameworks/base/cmds/input/Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_MODULE := inputinclude $(BUILD_JAVA_LIBRARY) /...
2019-11-23 10:59:56
367
原创 android系统recovery修改误区记录
这个主要是一个误区说明,recovery中的代码修改编译之后如果单纯将生成的bin文件拷贝到main system下的system/bin的目录下,实际上是不生效的,原因是main system和recovery是两个系统,所以要想recovey中的修改生效,应该重新烧写recovery.img这个镜像。另外需要提一点的是最后镜像是一个文件,然后烧写到android设备的固定分区上,这个的话可以...
2019-11-20 20:18:35
510
原创 android系统添加新键值流程
文章目录1. 前言2. 驱动层3. native层3. java层4. 添加到资源文件5. 消费键值1. 前言android系统有时候会有添加新键值的需求,底层方面和上层方面可能会由于发行平台,芯片厂商和系统版本的原因会存在一定差异,但原理基本相同,个人理解就是收到原始信号之后,底层键值与上层键值进行一一映射,然后在上层处理相应键值。下面就举例一个新键值首页键的添加过程。2. 驱动层驱动层...
2019-11-20 00:16:55
701
原创 浅谈android应用之网络通信
文章目录1. 前言2. 框架设计原理3. 实例开发第一步4. 实例开发第二步5. 实例开发第三步6. 后记1. 前言思考再三,还是先写一篇关于网络通信的博客。说起网络通信,可能你首先会想到一系列的网络通信的协议,这里不讲这些,这里只讲开发时候会使用到的网络通信框架的一些理解:RxJava+Retrofit+OkHttp。2. 框架设计原理一个优秀的框架具备高性能,高解耦合,通常会结合各种设...
2019-10-31 11:00:25
233
原创 浅谈android应用之Thread & Process
文章目录1. 前言2. Thread2.2 线程的创建2.2 线程池2.3 线程之间的交流3. Process3.1 进程的创建3.3 IPC方式1. 前言更多内容请查看android生态之应用篇直接进入主题,Thread即线程,Process即进程,经常会有人分不清楚两者,先来看官方的解释:进程是资源分配的最小单位,线程是CPU调度的最小单位。这个回答可能比较抽象不好被理解,这边就打个...
2019-10-29 23:41:08
510
原创 浅谈android应用系列博客公告
由于本身工作原因,后面重心将会倾斜系统开发,可能后续浅谈android应用系列博客进度会放缓。并且我自己也更倾向于系统层的研究以及音视频编解码的学习研究,学无止境,愿与读者一同前行!特此说明!...
2019-10-27 11:32:45
170
原创 浅谈android应用之MVC & MVP
文章目录1. 前言2. MVC3. MVP4. 代码demo5. 后记1. 前言这边首先需要说明的学习MVC与MVP的必要性,以下皆为个人理解,仁者见仁智者见智:因为MVC与MVP是开发框架会比较常见的两种开发架构,通常选择其中之一作为开发架构,并且它还通常结合多种设计模式。开发架构与设计模式两者协同组合成高可靠,高性能,高安全,并且可持续维护的框架。这里不往下展开了讲,可以根据自己的理解...
2019-10-27 11:20:00
244
3
原创 浅谈android应用之DVM & ART
文章目录1. 前言2. DVM3. ART4. DVM,ART,JVM三者的区别1. 前言之前有写过一篇文章浅谈android源码之dalvik,有兴趣深入学习的话可以看看我这篇文章。现在这篇文章不往深了讲,讲讲基本概念,对DVM以及ART有基本的认识就行。2. DVMDVM全称为Dalvik Virtual Machine。它是由Dan Bornstein编写的,名字源于他的祖先居住过的...
2019-10-26 16:16:07
485
原创 浅谈android应用之IPC
文章目录1. 前言2. Binder的由来3. 什么是Binder4. Binder机制的意义5. 通信机制6. 实现原理6.1 引言6.2 代码流程图6.3 java层调用jni层实现6.4 jni层调用native层实现6.5 native层调用驱动层实现6.6 本章小结1. 前言IPC是Inter-Process-Communication的缩写,意思是进程间通信或者跨进程通信。按照操作...
2019-10-26 15:10:48
2314
原创 浅谈andorid应用之JNI
文章目录1. 前言2. JNI的简述1. 前言接下来我会从JNI是什么,然后从JNI的运用场景,JNI的注册方式这几个方面来介绍它,jni技术是android提高篇的比较重要的内容之一,但也是比较容易理解的,如果想对JNI有更多了解的话,可以看我的另外一篇文章浅谈android源码之dalvik。2. JNI的简述JNI,全称为Java Native Interface,即Java本地接口...
2019-10-25 17:58:43
1490
原创 浅谈android应用之ANR
文章目录1. 前言2. 产生原理3. 预防方法1. 前言由于ANR理解比较简单,这边就只以它产生原理,预防方法两个方面进行说明。2. 产生原理所谓ANR,即Application Not Respond的缩写,产生这个异常的最根本原因是由于UI线程阻塞时间过长,导致按键,广播,服务的事件在规定的时间内无法响应导致的。为啥我们经常会提到说不要在UI线程进行耗时操作也就是这个原因,虽然耗时操作...
2019-10-25 10:48:55
216
原创 浅谈andorid应用之OOM
文章目录1. 前言1. 前言OOM(Out of Memory)即内存溢出,是因为应用所需要分配的内存超过系统对应用内存的阈值,而抛出的java.lang.OutOfMemoryError错误。OOM的根本原因是开发者对内存使用不当造成的,即使用内存之后,没有主动释放,导致内存紧张,后面程序如果...
2019-10-24 10:47:04
252
原创 浅谈android应用之编程语言
文章目录1. 前言2. 基础语言3. 混合开发相关语言4. 参考书籍5. 建议1. 前言android开发常用java,c,c++这三种。但是不要说这三种语言,单单一个java要想写清楚,这点篇幅是肯定不够的。这边提出来就是为了让学习的人知道你学习android需要什么语言基础。2. 基础语言android应用开发最常用的就是java语言了,说他为android的基础语言一点也不为过。那这...
2019-10-23 16:33:38
5231
反编译相关工具完整版带使用说明
2020-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅