android
文章平均质量分 69
宇华
皓月满轮玉宇无尘千顷碧 紫箫一曲银河有焰万里春 上善若水
展开
-
android6.0 init进程main之prop
android6.0 init进程main之prop 对应代码 android6.0_r72,kernel 对应 linux3.18前言init 进程系统属性初始化,属性导入 和 属性服务 :property_load_boot_defaults();start_property_service();涉及文件// system/core/init/property_service.cpp// system/core/init/init.cpp/system/core/init/I原创 2021-10-11 13:38:00 · 502 阅读 · 0 评论 -
android6.0 init进程main之epoll
android6.0 init进程main之epoll 对应代码android6.0_r72,kernel对应linux3.18前言init 进程监听 初始化,epoll 及 signal_handler_init涉及文件/system/core/init/Init.cpp/system/core/init/signal_handler.cppinit 进程 epoll 监听功能init进程 epoll 整体代码结构如下:// /system/core/init/Init.cpp原创 2021-08-24 21:02:20 · 247 阅读 · 0 评论 -
android6.0 init进程main之selinux_initialize
android6.0 init进程main之selinux_initialize 对应代码android6.0_r72,kernel对应linux3.18前言selinux 的初始化 selinux_initialize涉及文件/system/core/init/Init.cpp/external/libselinux/callbacks.c/system/core/init/log.cpp/system/core/init/Android.mk/external/libseli原创 2021-08-23 17:36:43 · 394 阅读 · 0 评论 -
android6.0 init进程main之klog
android6.0 init进程main之klog 对应代码android6.0_r72,kernel对应linux3.18前言klog_init();klog_set_level(KLOG_NOTICE_LEVEL);涉及文件/system/core/init/Init.cpp/system/core/libcutils/Klog.cmain()如下代码,直接注释说明其各个部分内容。klog_init()打开(创建文件) /dev/kmsg ,将文件句柄记录在 klog_原创 2021-08-23 12:40:59 · 652 阅读 · 0 评论 -
android6.0 启动流程总览
android6.0 启动流程总览Android系统的启动流程总体上是先启动BootLoader,再启动kernel,最后启动android。Android启动总览图BootLoader层BootLoader层启动有以下任务:当电源供电是将自身加在到RAM中,执行相应的初始化任务;加载linux内核,并引导linux内核启动。kernel层BootLoader 启动 kernel 的 swapper进程,进程ID为0,是内核的第一个进程,此进程初始化系统的各个硬件及kernel系统管理模块原创 2021-07-25 16:51:33 · 226 阅读 · 1 评论 -
android6.0 init进程启动前传
未写文章列表android6.0 init进程启动前世前言linux内核启动 head.Sstart_kerneljava为什么能实现单一原则插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入android6.0 init进程启动前世对应代码android6.0_r72,kernel对应l原创 2021-07-25 15:36:13 · 150 阅读 · 0 评论 -
do_fork函数
do_fork函数在内核中创建并执行新的程序的各种系统调用最终都是调用了do_fork来实现进程的创建。asmlinkage int sys_fork(unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7, struct pt_regs __regs){#ifdef CONFIG_MMU struct pt_regs *regs = RELOC_HIDE(&原创 2021-07-25 15:19:53 · 808 阅读 · 0 评论 -
start_kernel初始化
start_kernel 函数主要初始化 linux 系统各个功能子系统,然后进入 kernel 的下一步启动函数 rest_init(),下面简单说一下函数内部相关的初始化,有个初步的了解。详细内容来自https://www.cnblogs.com/lifexy/p/7366782.html仅做学习记录asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_p...原创 2021-07-25 13:03:17 · 360 阅读 · 0 评论 -
activitymanagerservice启动
ActivityManagerService(简称AMS)ActivityManagerNative(简称AMN)WindowManagerService(简称WMS)**********************************************************************************************************原创 2015-11-12 11:15:41 · 497 阅读 · 0 评论 -
11、桥梁模式(Bridge)
桥梁模式的模型: 火车 产品A 商人 赚钱 桥梁 产品B 产品属性原创 2016-04-11 17:28:13 · 293 阅读 · 0 评论 -
12、命令模式(command)
原始工作流程:命令人 找甲 让其做甲A--》甲B--》甲D (完成1任务) 找乙 让其做乙A--》乙C--》乙E (完成2任务) 找丙 让其做丙A--》丙C--》丙D (完成3任务)命令模式工作流程:(将每个任务封装成一个命令类原创 2016-04-11 17:57:53 · 248 阅读 · 0 评论 -
13、装饰模式(Decorator)
装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。假设张三的家长要查看张三的成绩,那么要通过学校成绩报告来查询,那么我们现在设定一下成绩报告。首先有成绩单类ISchoolReport(ISchoolReport时最终的数据来源模板,ISchoolReport基类模板) 基类可以查看整体报告,可以通过姓名查看个人成绩。每个年级的原创 2016-04-11 18:00:55 · 200 阅读 · 0 评论 -
14、迭代器模式(Iterator)
迭代器模式:宗旨提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。迭代器模式的本质就是迭代器,其实迭代器模式就是用迭代器来实现对元素(类或者变量等)的管理。图示: Project 类原创 2016-04-11 19:14:49 · 275 阅读 · 0 评论 -
15、组合模式(Composite)
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合的使用具有一致性。main(),客户CCorpNode,抽象基类,实现基本信息CBranchNode,树枝节点,实现Addordinate()函数和GetSubordinate()函数CLeafNode,叶子节点,IsLeaf属性总是“true”说明:组合模式主要是实现在CB原创 2016-04-18 15:32:36 · 235 阅读 · 0 评论 -
16、观察者模式(Observer)
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。main(),IObservable,被观察者接口CHanFeiZiObservable,被观察者韩非子IObserver,观察者接口CLiSiObserver,观察者李斯CZhouSiObserver观察者周斯说明:将观察者聚集到被观察者韩非子身边,韩非原创 2016-04-18 15:34:10 · 433 阅读 · 0 评论 -
17、责任链模式(ChainofResponsibility)
概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。main(),客户IWomen,发出请求者接口Women,请求者实现类Handler,处理请求抽象类Father,处理请求实现类,责任链之一Husband,处理请求实现类,责任链之二Son,处理请求实现类,责任链之三原创 2016-04-18 15:35:25 · 242 阅读 · 0 评论 -
shell脚本中修改文件的内容
1、修改某文件中的内容:将oldstring修改为newstring sed -i "s/oldstring/newstring/g" test.txt 如果将oldstringXXX修改为newstring: sed -i "s/oldstring*/newstring/g" test.txt2、将某个目录中所有还有oldstring字符串的文件中的old原创 2016-05-13 13:37:26 · 16277 阅读 · 0 评论 -
android广播机制概述
Android系统在运行的过程中,会产生很多事件,比如开机、电量改变、收发短信、拨打电话、屏幕解锁Android:系统在产生某个事件时发送相应的广播,应用程序或系统服务等使用广播接收者接收这个广播,就知道系统产生了什么事件。package com.example.administrator.broadcastdemo;import android.content.BroadcastRe...原创 2019-02-28 09:46:52 · 340 阅读 · 0 评论 -
android anr 感知
ANR(Application Not Responding)定义从初始认识来说,在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。当用户点击了“等待”,对话框消失程序会继续运行,直到下一个周期如...原创 2019-02-28 09:47:56 · 215 阅读 · 0 评论 -
android anr 产生的条件
android anr 感知一般地,ANR的产生需要同时满足三个条件:1、主线程方面:只有应用程序进程的主线程(即:UI线程)响应超时才会产生ANR;UI线程时与用户进行交互的线程,如果它在阻塞或者长时间在处理某个人物无法让用户进行下一步交互操作,感知上就是这程序怎么卡死了,体验很差,故而其需要一定的超时提醒,也就是ANR的提醒;而子线程的阻塞或者缓慢只要不影响主线程的人机交互就没必...原创 2019-02-28 09:48:19 · 1031 阅读 · 0 评论 -
android anr 产生的类型及原因
android anr 产生的条件android 系统中anr的本质是主线程无法响应。而导致主线程无法响应的原因大致如下:主线程请求网络资源,数据库访问或者io访问,这些操作都是耗时操作,主线程处于阻塞状态,如果超时等待,会发生anr; cpu处于饥饿状态,无法让主线程运行,导致anr; 其他进程或者线程占用cpu资源,无法释放资源让该主线程运行,导致anr; 死锁,即主线程等待的锁...原创 2019-02-28 16:01:57 · 3557 阅读 · 0 评论 -
android anr报告路线之一(input)
原创 2019-03-04 11:05:33 · 466 阅读 · 0 评论