自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (6)
  • 收藏
  • 关注

原创 【Android-设计模式】抽象工厂模式

抽象工厂模式定义】:为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类。【抽象工厂的使用场景】:一个对象族有相同的约束时可以使用抽象工厂模式。是不是听起来很抽象?举个例子,Android、IOS、WindowPhone下都有短信软件和拨号软件,两者都属于软件的范畴,但是,它们所在的操作系统平台不一样,即使是同一家公司出口的软件,其代码的实现逻辑也是不同的,这时候就可以考...

2020-02-25 17:58:22 231

原创 【Android-设计模式】工厂方法模式

工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪个类工厂方法模式的使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。工厂方法模式的通用模式代码:抽象产品类:public abstract class Product { /** *产品. public abstract ...

2020-02-25 16:18:34 177

原创 【Android-TODO】

第一批:稳定性优化重启、死机、定屏性能优化https://github.com/hehonghui/android-tech-frontier/tree/master/android-blog/Android%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%B3%BB%E5%88%97功耗优化内存管理、内存优化第二批:安全绘制效率IO优化开关机...

2020-02-24 16:48:59 193

原创 【Android话题-目录】

【Android话题-2.1系统服务】谈谈你对zygote的理解【Android话题-2.2系统服务】说说Android系统的启动【Android话题-2.3系统服务】你知道怎么添加一个系统服务吗【Android话题-2.4系统服务】系统服务和bind的应用服务有什么区别【Android话题-3.1应用进程】你知道应用进程是怎么启动的吗【Android话题-3.2应用进程...

2020-02-23 23:18:20 627

原创 【Android话题-3.4应用进程】谈谈你对Context的理解

考察内容:了解Context的作用熟悉Context的初始化流程深入理解不同应用组件之间Context的区别回答几个问题:应用里面有多少个Context?不同的Context之间有什么区别?Activity里面的this和getBaseContext有什么区别?getApplication和getApplicationContext有什么区别?应用组件的构造,onCreate...

2020-02-23 17:39:45 523

原创 【Android话题-3.3应用进程】谈谈你对Application的理解

考察内容:了解Application的作用(初级)熟悉Application的类继承关系以及生命周期(中级)深入理解Application的初始化原理(高级)Application有什么作用?(首先它是一个系统组件,生命周期很长,只要应用在,它就在)保存用户进程内的全局变量初始化操作提供应用上下文Application的特点:活得长(只有应用在,它就在)生得早(Ap...

2020-02-23 15:04:41 639 1

原创 【Android话题-3.2应用进程】应用是怎么启动Binder机制的

考察内容:了解binder是用来干什么的?(binder是用来跨进程通信的)应用里面哪些地方用到了binder机制?应用的大致启动流程是怎样的?一个进程是怎么启动binder机制的?应用启动流程什么时候支持binder机制的?boolean runOnce(){ String[] args = readArgumentList(); int pid = Zygote.fo...

2020-02-23 14:01:15 460

原创 【Android话题-3.1应用进程】你知道应用进程是怎么启动的吗

考察内容:了解Linux下进各启动的方式熟悉应用进程启动的基本流程深入理解应用进程启动的原理进程启动方式用fork()函数创建子进程后,在子进程的分支直接进入进程处理入口函数在子进程的分支调用execvx(path) 启动另一个可执行文件应用进程启动原理什么时候触发的进程启动?谁发起的?进程是谁启动的?怎么启动的?什么时候触发的进程启动?在启动组件的时候,如果发现...

2020-02-23 13:22:51 382

原创 【Android-设计模式】单例模式

有哪些单例模式:线程内线程间进程间普通单例:【实现方式1】:Double Check Lock(DCL)class Singleton { private static Singleton sInstance = null; private Singleton(){ } public void doSomething(){ Ststen,iyt,orubtk...

2020-02-20 10:13:39 190

原创 【笔记-moonlight】客户端与服务器的配对过程

客户端是如何确定配对的状态的?配对流程是怎样的?解除配对的流程是怎样的?客户端是如何确定是否已配对的?客户端会先尝试通过https向服务器请求serverinfo信息如果不成功则换用https再次请求serverinfo在响应中的PairStatus字段标识是否配对(1:已配对,其它:未配对)更多细节:https的端口号是47984,http的端口是47989GFE版...

2020-02-19 22:34:48 2562 2

原创 【Android-架构师】应用架构师基础技能

Java泛型泛型的作用与定义通配符与嵌套泛型上下边界RxJava中泛型的使用分析注解自定义注解:自定义注解与元注解注解参数与默认值注解的使用:APT,编译时注解处理器插桩,编译后处理筛选反射,运行时动态获取注解信息Retrofit中的注解并发编程线程共享和协作:CPU核心数,线程数,时间片轮转机制解读syncroized、Lock、volatile、Th...

2020-02-19 22:30:01 164

原创 【Android-架构师】六大原则是什么,设计模式有哪些

六大原则单一职责原则开闭原则里氏替换原则(扩展性更好的系统)依赖倒置原则(让项目变化的能力)接口隔离原则(系统有更高的灵活性)迪米特原则(更好的可扩展性)设计模式结构型模式桥接模式适配器模式装饰品模式代理模式组合模式创建型模式建造者模式单例模式抽象工厂模式工厂方法模式静态方法模式行为型模式模板方法模式策略模式观察者模式责任链模式命令模...

2020-02-19 22:12:10 189

原创 【android话题-4.3Activity】应用的UI线程是怎么启动的

考察内容:什么是UI线程?UI线程的启动流程,消息循环是怎么创建的了解Android的UI显示原理,UI线程和UI之间是怎么关联的?什么是UI线程?-UI线程就是刷新UI所在的线程的-UI是单线程刷新的UI线程==主线程么?对Activity来说,UI线程就是主线程Activity.runOnUiThread(Runnable)对View来说,它的UI线程就是ViewRo...

2020-02-17 10:21:12 282

原创 【android话题-4.2Activity】说说Actvity的显示原理

考察内容:setContextView的原理是什么?Activity在onResume之后才会显示的原因是什么?ViewRoot是干嘛的,是ViewTree的rootView么?相关问题:Activity的显示原理(Window/DecorView/ViewRoot)Activity的UI刷新机制(Vsync/Choreographer)UI的绘制原理(Measure/Layo...

2020-02-17 09:38:13 360

原创 【android话题-4.1Activity】说说Actvity的启动流程

考察内容:启动Activity会经历哪些生命周期回调冷启动大致流程,涉及哪些组件,通信过程是怎么样的?Activity启动过程中,生命周期回调的原理?应用端Activity启动的步骤通过ClassLoader加载APK里面的Activity类,生成Activity对象;准备好Application(并非创建,而是把之前创建好的Application返回);创建ContextI...

2020-02-17 09:03:46 360

原创 【Android话题-2.5系统服务】ServiceManager启动和工作原理是怎样的

考察内容:ServiceManager的启动和工作原理看以下几个问题:ServiceManager启动流程是怎样的?怎么获取ServiceManager的binder对象怎么向ServiceManager添加服务?怎么从ServiceManager获取服务?ServiceManager的启动启动进程启动Binder机制发布自己的服务等待并响应请求启动配置文件:i...

2020-02-15 18:28:41 337

原创 【Android话题-2.4系统服务】系统服务和bind的应用服务有什么区别

考察内容:它们在启动方式上有什么区别?它们在注册方式上有什么区别?它们在使用方式上有什么区别?启动方式上有什么区别?系统服务的启动系统服务在部分是跑在SystemServer里面private void run(){ ...... startBootstrapServices(); startCoreServices(); startOtherServices()...

2020-02-14 22:17:23 372

原创 【Android话题-2.3系统服务】你知道怎么添加一个系统服务吗

考察内容:了解如何使用系统服务了解系统服务调用的基本原理了解服务的注册原理如何使用系统服务?@Overridepublic Object getSystemService(String name){ return SystemServiceRegistry.getSystemService(this, name);}static Object getSystemServ...

2020-02-14 18:43:42 482

原创 【Android话题-2.2系统服务】说说Android系统的启动

Android有哪些主要的系统进程?这些系统进程是怎么启动的?进程启动之后主要做了些什么事?系统进程zygoteSystemServerservicemanagerhwservicemanagersurfaceflinger…重要进程的启动Zygote的启动流程init进程fork出zygote进程启动虚拟机,注册jni函数预加载系统资源启动SystemSe...

2020-02-14 10:20:07 385

原创 【Android】Framework简述

【AMS的作用】AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块类似。【PKMS的作用】负责系统中Package的管理,应用程序的安装、卸载、信息查询等。【PKMS构造函数的主要功能】扫描Android系统中几个目标文件夹中的APK,从而建立合适的数据结构以管理诸如Package信...

2020-02-13 21:22:57 195

原创 【Android话题-2.1系统服务】谈谈你对zygote的理解

这道题想考察什么?了解Zygote的作用(初级) 熟悉Zygote的启动流程(中级) 深刻理解Zygote的工作原理(高级)-------------------------------------------------------------------------1. Zygote的作用是什么?启动SystemServer 孵化应用进程资源:常用类 JNI函数 主题...

2020-02-13 15:56:40 488 1

转载 【Android】@GuardedBy注解

在ActivityThread中看到如下的用法: @GuardedBy("mResourcesManager") final ArrayMap<String, WeakReference<LoadedApk>> mPackages = new ArrayMap<>(); @GuardedBy("mResourcesManager")...

2020-02-12 16:42:24 1084

原创 【Android-PKMS】APK安装过程

【从一个APK安装另一个APK】首先是从context获得PackageManager句柄,然后调用installPackage()进行安装ContextImpl.java::getPackageManager() pm = ActivityThread.java::getPackageManager(){ //最终获得PackageManagerService服务...

2020-02-10 17:00:34 750

原创 【数学-常用公式】基本积分表

【基本积分表】 ...

2020-02-05 13:59:02 4221

原创 【数学-常用公式】三角函数

【基本公式】 【诱导公式】 目标是化简:、、、 奇变偶不变,符号看象限。(sin与cos互变,tan与cot互变)。如: 1)当k为奇数时结果...

2020-02-03 13:59:40 476

原创 【Android】如何查看已安装的apk声明的权限

adb pull /data/system/packages.xml在packages.xml中找到对应apk的包名及对应的权限声明

2020-02-02 10:56:56 1954

原创 【Android-PKMS】启动分析

【注】PKMS=PackageManagerServicePMS=PowerManagerServicePKMS负责Android系统中Package的安装、升级、卸载、查询功能。【PKMS的启动】PKMS作为系统的核心服务,由SystemServer创建按函数的嵌套调用关系化简PKMS的启动流程SystemServer.java::run(){ //P0:Sys...

2020-02-01 17:34:44 669

Unicode编码器

Unicode编码器,方便一键生成任何字符的UTF-8/UCS2/UCS4编码

2013-08-07

解决Linux内核移植后退格键失效的问题

本文详细阐述如何解决在linux移植过程中遇到的退格键失效的问题

2012-06-03

Linux内核移植

本文详细记录linux内核移植的过程,这是本人的笔记。

2012-06-03

u-boot-1.3.1的详细移植步骤

本文详细记录做uboot在linux下的移植步骤

2012-06-03

自动引导内核

本文详细记录做linux自动引导内核的步骤

2012-06-03

通过nfs挂载主机目录到开发板

图文详细一步一步介绍如何通过nfs把电脑主机挂载到开发板上。

2012-04-26

空空如也

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

TA关注的人

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