自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 L-code

leetcode

2023-01-05 22:42:57 146

原创 Android ANR/CRASH 分析

https://blog.csdn.net/Android725/article/details/105534876?ops_request_misc=&request_id=&biz_id=102&utm_term=window%E2%80%99s%20input%20channel%20is%20full&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-.fi

2021-07-28 11:16:55 220

原创 【算法】面试题

1. 2个玻璃球,100 层楼,测试第几层玻璃球破碎1.最基础 2分法:A 分别 50L 和 100L B 需要丢1到49L(如果A 在50L 破裂) 或者 51L 到99L(A在50没破,但是100破) 所以最多: 2 + 49 = 51 次;2. 优化 A每隔10L 丢一次,B 每次最多9次最多10 + 9 = 19 次3. 最优解法假设 A 第一次隔10L,第2次相较于第一次隔9L ... ... A第一次破:B 需要10 -1 = 9 次,总共...

2021-03-16 16:55:13 194

原创 【JAVA】 线程相关

1. 进程和线程之间有什么不同?进程是一个独立的运行环境,系统会给每个进程分配独立的内存空间; 一个进程下多个线程,共用进程的 内存空间;2.如何创建一个线程?1.第一种是继承Thread类 实现方法run() 不可以抛du异常 无返值2.第二种是实现Runnable接口 实现方法run() 不可以抛异常 无返值3.第三种是实现Callable<T>接口,接口中要覆盖的方法是 public <T> call() 注意:此方法可以抛异常,而前两种不能 而且...

2021-01-13 17:40:04 165

原创 【JAVA】 Effective JAVA 学习笔记

https://www.cnblogs.com/yulinfeng/archive/2017/08/03/7282649.html================================================================================2.创建和销毁对象2.1 静态工厂方法代替构造器2.2 多个构造器参数时用构造器如下例子:...

2019-01-25 14:22:22 307

原创 【JAVA】 设计模式

https://blog.csdn.net/jack__chiang/article/details/702088861.设计模式的分类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任...

2019-01-24 16:14:39 308

原创 【LINUX】权限位

https://blog.csdn.net/qq_36221862/article/details/56012469  1.  1表示连接的文件数2.  root 表示用户3.  root 表示用户所在的组4.  43 表示文件大小5.  1970-01-17 02:59 表示最后的修改日期 1 . 第一位表示Linux 文件类型:文件类型分为如下几...

2019-01-10 17:29:35 245

原创 【Android】handler

//1.初始化,参数为名字,也就是线程的名字,后面我们会结合源码来看 mHandlerThread = new HandlerThread("WorkThread"); //必须调用start方法,因为HandlerThread继承自Thread来启动线程 mHandlerThread.start(); //初始化Handler,只是传递了一个mHandlerThread内部的一个loo...

2019-01-05 12:02:10 226

原创 【Android】【binder】

java编写binder服务实例https://www.cnblogs.com/winfu/p/7521372.html1.编写AIDL 文件IHelloService.aidl:/** {@hide} */interface IHelloService{ void sayhello(); int sayhello_to(String name);} ...

2019-01-05 11:45:37 326

原创 【JAVA】【面试题 V.1】

1.JAVA 面试题https://blog.csdn.net/linzhiqiang0316/article/details/80473906https://blog.csdn.net/fanx_000/article/details/80297487https://blog.csdn.net/hope900/article/details/78647466/2.JD 面试...

2019-01-05 08:18:13 645

原创 【C++】【笔记】【LINUX 下的 SOCKET 编程】

Socket是什么1、 socket套接字socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –&gt; 读写write/read –&gt; 关闭close”模式来操作。Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭).2、套接字描述符 ...

2018-12-27 01:08:16 165

原创 【C++ 学习】指针

******1.指针变量是 专门存放地址 的变量,所以对它进行赋值时只能赋值 地址;2.指针的初始化:   int* ptr = null;  和 int *ptr = null; 是一样的,但是只有ptr 是代表指针变量, *ptr 代表的是指针引用;3.*ptr 代表是 “ 对指针变量ptr 进行* 运算”4. int* ptr =&amp;a   合法(对指针变量 ptr 赋...

2018-11-29 17:23:33 458

原创 【笔记】【C++】 特殊变量类型

1.externextern 申明的对象主要用于支持分离式编译机制,该机制允许将程序分割为若干个文件,每个文件可被独立编译。即 在 A.cpp 中申明的变量a , 可以直接在B.cpp 中引用;如果想声明一个变量而非定义它,就在变量名前添加extern关键字,而且不要显式地初始化变量:extern int i; //声明i而非定义int j; //声明并定义i...

2018-11-29 16:41:20 284

原创 【笔记】【C++】 fork 子进程

1.直接调用fork() 函数,即创建主进程的子进程。2.调用fork()函数后,会同时返回2个返回值;3.在父进程中,fork返回新创建子进程的进程ID;   在子进程中,fork返回0;#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;int main(int argc,char *argv[]){... pri...

2018-11-29 16:28:39 545

原创 【笔记】C++ 特殊函数

 1.struct option介绍在c程序应用程序执行的时,常常配有一些参数,如果参数少我们可以使用arvg,arvc来实现,如果参数很多并且需要传入参数复杂我们可以使用strcut option 来实现。struct option {/*name表示的是长参数名*/const char *name;/*has_arg有3个值,no_argument(或者是0),表示该参...

2018-11-29 14:30:02 972

原创 【笔记】fastmmi 实现

1.mainint main(int argc, char **argv) { //接收到“SIGCHLD”的进程终止信号,调用exit_handler() 函数 signal(SIGCHLD, exit_handler); int ret = -1;#if 1 // if(!pre_config()) { MMI_ALOGE...

2018-11-20 11:53:40 495

原创 case

1

2018-11-18 17:00:24 157

原创 【笔记】C++ 多态 例子

#include &lt;iostream&gt;using namespace std;class Animal{public: virtual void makeSound() { cout &lt;&lt; "rawr" &lt;&lt; endl; }};class Dog : public Animal{public: virtual void ma...

2018-11-18 11:45:54 248

原创 【笔记】C++ 相关

基类和派生类 单继承   class &lt;派生类名&gt;:&lt;继承方式&gt;&lt;基类名&gt;    {     &lt;派生类新定义成员&gt;    };多继承   class &lt;派生类名&gt;:&lt;继承方式1&gt;&lt;基类名1&gt;,&lt;继承方式2&gt;&lt;基类名2&gt;,…    { 

2018-11-18 11:19:55 258

原创 【笔记】 Activity在server端启动流程

1.预启动 此阶段 6 步骤:1.AMS.startActivity  获取client端的UID,判断Client端是否有权限启动应用程序Activity。2.ActivityStack.startActivityMayWait查询系统中域Intent 匹配的Activity    1 调用resolveActivity 通过PKMS 查询是否存在指定Intent的Act...

2018-11-17 17:20:35 451

原创 【笔记】ActivityManagerService 启动activity

https://blog.csdn.net/csdn_of_coder/article/details/78024696  1.Activity向AMS 发起请求启动App 1.1 AMS 启动Activity 流程AMS 调用startActivity() 来启动APP: public final int startActivity(IApplicationT...

2018-11-17 12:14:36 334

原创 【笔记】vold 和 MountService 通信简略

MountService和vold是使用NativeDaemonConnector:MountService的构造函数中有如下: mConnector = new NativeDaemonConnector(this, "vold", MAX_CONTAINERS * 2, VOLD_TAG, 25, null);//新建NativeDaem...

2018-11-15 22:27:57 348

原创 【笔记】 抽象类 和 接口

抽象类(abstract class) 定义:包含抽象方法的的类是abstract class 用abstract关键字修饰 作用:abstractclass是为了把相同的东西提取出来,即重用 使用abstractclass语法规定 语法 备注 抽象类定义用abstract关键字修饰 要通过子类进行实例化 抽象类是不能被实例化的 ...

2018-11-14 20:09:12 164

原创 【笔记】 Binder

1.Service Manager组件是用来管理Server并且向Client提供查询Server远程接口的功能;2.Service Manger、Client和Server三者分别是运行在独立的进程当中,这样它们之间的通信也属于进程间通信:也是采用Binder机制,所以Service Manager也在充当Server的角色,然而,它是一种特殊的Server。 ServiceMana...

2018-11-14 19:14:02 140

原创 【笔记】Android ANR

ANR出现的情况有几种? 怎么分析解决ANR问题?ANR(Application Not responding)。Android中,主线程(UI线程)如果在规定时内没有处理完相应工作,就会出现ANR。具体来说,ANR会在以下几种情况中出现:(1) 输入事件(按键和触摸事件)5s内没被处理(2) BroadcastReceiver的事件(onRecieve方法)在规定时间内没处理完(前台...

2018-11-14 16:44:12 193

翻译 【JAVA】 basic

封装:隐藏了类的内部实现机制,可以在不影响使用的情况下改变类内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法;继承:重用父类代码,同时继承也为实现多态做了铺垫。多态:多态是同一个行为具有多个不同表现形式或形态的能力,多态是同一个接口,使用不同的实例而执行不同操作,多态就是程序运行期间才确定,一个引用变量倒底会指向哪个类的实例对象,该引用变...

2018-11-14 14:38:06 166

原创 【笔记】MountService 路径映射关系图

2018-11-08 16:37:25 714

原创 【笔记】odex , vdex ,art 文件区别

1.vdexpackage 直接转化的 可执行二进制码 文件:1.第一次开机就会生成在/system/app/&lt;packagename&gt;/oat/ 下;2.在系统运行过程中,虚拟机将其 从 “/system/app” 下  copy  到 “/data/davilk-cache/” 下 2.odex odex 是从vdex 这个文件中 提取了部分模块生成的一个新...

2018-11-08 15:57:04 13074 9

原创 Android 8.0 系统启动流程 init 进程

1 . Linux系统执行完初始化操作最后会执行根目录下的init文件,init是一个可执行程序,它的源码在/system/core/init/init.cpp;2 . init进程是用户空间的第一个进程,系统中启动的app 进程都是以它为父进程的;1. init 进程入口函数: main()/* * 1.C++中主函数有两个参数,第一个参数argc表示参数个数,第二个参数是参数列...

2018-11-07 18:45:21 724

原创 Android 6 init 源码分析

init 的源码在/system/core/init/init.cpp  下1. main int main(int argc, char** argv) { if (!strcmp(basename(argv[0]), "ueventd")) { return ueventd_main(argc, argv); } if (!strcmp(ba...

2018-11-07 17:34:35 238

原创 Android 8 原生app 和 第三方app 资源相关路径总结

一. 原apk文件路径:    1.系统app:/system/app/&lt;PackageName&gt;/&lt;PackageName&gt; .apk            2. 三方app: /data/app/&lt;PackageName&gt;/base.apk        二. dex优化后生成的课执行文件路径:       1.系统app:/sy...

2018-11-07 16:10:37 2132

原创 【项目】auot-start

1.Qaulcomm  有自己的auto_start 权限:  1.AppOpsManager 中添加 OP_AUTO_START 权限项  2.AMS 中添加 isAutoStartAllowed 函数:调用AppOpsService 的noteOperation 函数,检测此pkg是否有AppOpsManager.OP_AUTO_START  3.isAutoStartAllowed函数...

2018-11-02 12:02:27 247 1

原创 AOA

1. host 端 先自己开起一个应用,此应用会调用UsbManager 将系统USB 设置为accessory 状态;2.host 端连接 client 端,host 端APP 注册了usblib ,回调的usb_device_add () 函数会 返回当前client 端作为USB 设备的status3.host 端会检查client 端作为USB device  的 vid  和 p...

2018-11-01 19:33:36 1411

原创 Android AOA 通道 FW 层建立

                    基于LC6500 模块AOA 通道的建立  1.AOA 介绍AOA 为Android Open Accessory的缩写,简单点说,就是Android支持的USB 设备形态中的一种。一个Andorid系统的AOA模式分为两种: HOST模式:    Android 设备在HOST模式下,将会提供电源给外部设备并与之建立通...

2018-11-01 19:14:27 1616

原创 APP 安装路相关

基于Android 8 :1.非系统自带应用:1.安装在“/data/app”下msm8909go_benz:/data/app # lslscn.wps.moffice_eng-1qckU7E2l4V8BTnsA8SWEw==com.estrongs.android.pop-ZntFcOxK4pSp0Y7oOjMKyg==com.iflytek.inputmethod-EB...

2018-10-31 15:31:37 605

原创 handler.post 运用

1. 主线程中的使用:new Handler().post(new Runnable() { @Override public void run() { mTest.setText("post");//更新UI } });这段代码里并没有开启了一个子线程(调用的是 run  而不是 start 。),因...

2018-10-31 14:08:37 1899 3

原创 PackageManagerService 源码分析 (3) ApplicationInfo 相关

PackageParser.Package.ApplicationInfo  类Application 是PackageParser.Package 的一个成员 一   . 调用情况:1.PackageParser.parseBaseApk() :   1. 解析指定路径apk的AndroidManifest.xml文件,遇到tag为”application”时,会调用parse...

2018-10-31 11:20:22 442

原创 PackageManagerService 源码分析(2)

 一.scanPackageLIPKMS 中调用scanDirLI来分析APK 文件,如果目录下的是apk文件或者是目录,会继续调用scanPackageLI函数: private PackageParser.Package scanPackageLI(File scanFile, int parseFlags, int scanFlags, long ...

2018-10-31 09:22:28 348

原创 PackageManagerService 源码解析

一.SystemServer创建PackageManagerService    省略二.PackageManagerService 构造函数 2.1 Settings mSettings = new Settings(mPackages); mSettings.addSharedUserLPw("android.uid.system", Proce...

2018-10-30 17:43:53 608

原创 packageParser 解析

1 .PackageParse类,它主要用来解析手机上的APK文件(支持Single APK和MultipleAPK),解析一个APK主要是分为两个步骤:    1.将APK 解析成Package:解析APK文件为Package对象的过程;      2.将Package 转化为 PackageInfo:由Package对象生成PackageInfo的过程;2.解析入口函数为 parseP...

2018-10-30 13:46:26 1410

空空如也

空空如也

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

TA关注的人

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