![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android framwork学习
奋力搬砖
早起的鸟儿有虫吃
展开
-
adb安装应用后重启设备应用消失
场景:应用本身安装在system/app路径下,然后我们通过adb install -r安装应用后重启手机,发现应用还是用的以前的不是我们更新的分析:首先adb install -r安装的应用是在data/app/下,由于apk在system/app中已经存在,所以系统会在data/app/的应用包名后添加-1作为标记抓取开机log有如下log打印:01-01 19:19:38.103 787 787 D PackageManager: scan package: /system/app/P9原创 2020-10-13 11:37:56 · 2523 阅读 · 0 评论 -
android P 关于Activity启动(上)启动之前的准备
一 Activity启动的两种情况本文说的Activity的启动并不是Activity的四种启动模式而是我们在调用startActivity之后framework层是如何处理的,根据framework的处理大致可以分为两种情况:被启动的Activity此时所在的进程还没有运行起来这种情况就需要系统先去启动Activity所在的进程再去启动Activity,比较常见的场景是我们安装了一个应用,然后在Launcher界面点击图标去启动它被启动的Activity此时所在的进程已经在运行对于这种情况就没有原创 2020-09-07 15:36:47 · 460 阅读 · 0 评论 -
Android P 属性服务property的初始化与启动
288 // There is only a single mutator, but we want to make sure that289 // updates are visible to a reader waiting for the update.原创 2020-08-06 17:45:54 · 1811 阅读 · 0 评论 -
Android P init启动阶段干了啥
init进程是用户空间的第一个进程,在系统中占有至关重要的作用,比如创建zygote进程和属性服务等,在内核启动完成后便会查找init.rc文件并调用init.cpp文件来启动init进程首先看下init.cpp文件的main函数(system/core/init/init.cpp),由于main做了很多事情,代码很长,就一部分一部分查看吧int main(int argc, char** argv) { if (!strcmp(basename(argv[0]), "ueventd")) {原创 2020-08-06 14:54:05 · 508 阅读 · 0 评论 -
在系统中添加新的可执行文件,为其添加相关selinux权限
最近在项目中要求添加一个新的可执行文件,编译后的路径是system/bin中,这就涉及两方面问题,如何去启动它,怎么添加selinux权限一 添加启动参考系统相似的功能,发现都是通过init.rc去启动的,所以我们也在init.rc中启动system/core/rootdir/init.rc+service htfsk /system/bin/htfsk+ class core+...原创 2020-03-19 16:22:57 · 1150 阅读 · 0 评论 -
基于android N添加服务使其成为系统服务
部分一一 我们首先需要写好自己的服务frameworks/base/core/java/android/content/dyna/DynaSystemManager.javaframeworks/base/core/java/android/content/dyna/IDynaSystemManager.aidlframeworks/base/services/core/java/com/...原创 2020-03-19 15:53:25 · 759 阅读 · 0 评论 -
Android射频校准标志位(Barcode)
最近项目要求在工具中添加一个校准标志位,通过ATE工具写入射频参数后应用工具中能显示已校准在MTK得工厂测试中也是有读取Barcode得,里面有两个方法一 通过读取NvRam来获取校准标志位int get_barcode_from_nvram(char *barcode_result){ int read_nvram_ready_retry = 0; F_ID fid; int ...原创 2019-10-16 17:48:19 · 1367 阅读 · 0 评论 -
MTK平台NvRam读取
最近做项目需要读取NvRam信息,完成之后做下笔记以便以后用,由于是MTK平台,MTK有自己得一套NvRam读取得方式,目前是在android L版本做的,还是用得NvRAMAgent来操作首先将NvRAMAgent文件放到工程目录中,内容如下,记得改下包名/* Copyright Statement: * * This software/firmware and related docu...原创 2019-10-16 17:33:03 · 1107 阅读 · 0 评论 -
PMS-adb install安装应用流程(Android L)
第一次画流程图画的不好通过adb install安装应用时对framework来说会首先调用runInstall()方法private int runInstall(){ int installFlags = 0; int userId = UserHandle.USER_ALL; String installerPackageName = n...原创 2019-10-12 16:25:35 · 767 阅读 · 0 评论 -
PMS-应用安装过程签名(Android L)
在安装APK时系统会对APK的签名做一些验证以确保APK的完整性,不管以何种方式安装APK都会走到PMS中的installPackageLI()方法frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.javaprivate void installPackageLI(InstallArgs...原创 2019-10-10 17:02:20 · 702 阅读 · 0 评论 -
ThreadLocal源码简单学习
在源码中很多地方都会用到ThreadLocal,它可在在指定的线程中存储和取出数据,而其他线程是不可以的,打个比方说在Looper中的loop()方法中 public static void loop() { final Looper me = myLooper(); if (me == null) { throw new Runti...原创 2019-10-10 15:02:32 · 72 阅读 · 0 评论 -
Handle源码学习
在日常工作中有很多地方都会使用handle,比如更新ui界面或者线程间通信,正常主线程使用就不说了,注意下不要内存泄漏就可以了,关于这个可以参考内存泄漏和内存溢出以及优化,这里主要看线城中使用,我们都知道在线城中我们都需要先Looper.prepare()然后再Looper.loop(),否则就会报No Looper; Looper.prepare() wasn't called on this ...原创 2019-10-09 17:47:15 · 222 阅读 · 0 评论 -
config_static_metadata_request_commonType.h
/* Copyright Statement: * * This software/firmware and related documentation ("MediaTek Software") are * protected under relevant copyright laws. The information contained herein is * confidentia...原创 2019-07-23 11:00:30 · 1432 阅读 · 0 评论 -
Android P版本添加双卡铃声
1 添加ro.config.ringtone_sim2值作为默认SIM2的铃声原创 2019-07-31 17:16:12 · 818 阅读 · 0 评论 -
实现序列化的两种方式Serializable和Parcelable
Serializable Serializable是Java所提供的一个序列化接口,它是一个空接口,为对象提供标准的序列化和反序列化操作 libcore/ojluni/src/main/java/java/io/Serializable.java public interface Serializable { } 通过Serializab...转载 2018-10-10 11:35:14 · 255 阅读 · 0 评论 -
Context学习-------Application Context源码学习
以前没有做笔记的习惯,导致在工作中遇到问题又得跟流程找代码浪费了不少时间,想了想还是做下笔记整理一下以便以后便于查找和温故以前的知识,以前看源码都是看的android 4.4的版本,现在公司的项目都是android 8.1的,变化还是很大的,刚好可以再学习一下,目前我也是在摸索中,如果有大牛看到哪里有问题欢迎指出 一 Context简介 Context在我们日常工作中...原创 2018-09-29 16:12:35 · 230 阅读 · 0 评论