自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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之PowerManagerService

文章目录1. 前言1. 前言

2020-03-08 01:42:17 492

原创 浅谈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

反编译相关工具完整版带使用说明

反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。相关的说明文档链接如下: https://blog.csdn.net/angelsmiling/article/details/103804171

2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除