自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android进阶知识树——理解系统服务WindowManagerService

属性介绍创建过程添加过程删除过程

2019-08-31 15:52:01 594

原创 Android进阶知识树——必须会的组件化技术

1、概述笔者从事智能家具行业的开发工作,也是从公司创业团队工作到现在,对于公司的项目从1.0版本开始接手一直到现在,虽说项目不是很大但麻雀虽小五脏俱全,在项目和团队的不断扩大、暴露出的问题也不段增多,组件化势在必行,本文就根据整个项目的发展,总结下组件化的实践流程;在最初的1.0版本中只是针对一个智能设备的操控和数据交互,项目本身就很简单此时也基本单人开发,所以所有的功能代码都直接在app中...

2019-08-27 17:18:58 472

原创 Android插件化——深入理解Context机制

1、

2019-08-18 16:53:30 735

原创 Android进阶知识树——JNI和So库开发

1、Jni基础知识Jni使用场景需要调用Java语言不支持的依赖时,整合非Java语言开发的系统,如C、C++节省运行时间提高运行效率,如:音视频等Jni类型和Java类型的映射关系native方法与Jni映射实例public static native String action(short s , int i, long l, float f, double d,...

2019-08-18 14:39:11 904

原创 Androdi热修复之路 ——热修复框架Tinker 源码分析

1、Application的生成2、下载补丁合成Patch包在程序中开启加载补丁包TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(), Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch.patch");通过网络...

2019-08-14 18:20:37 387

原创 Android进阶知识树——Android四大组件启动过程

ActivityActivity的启动是从Activity的startActivityForResult(),在startActivityForResult()中调用Instrumentation.execStartActivity()execStartActivity():调用IActivityManager代理类执行Activity的启动,IActivityManager在此处采用B...

2019-08-13 19:02:17 932 1

原创 Android插件化——VirtualAPK接入与源码分析

1、宿主工程引入VirtualApk在项目Project的build.gradle中添加依赖dependencies {classpath ‘com.didi.virtualapk:gradle:0.9.8.6’}在宿主app的build.gradle中引入VirtualApk的host插件apply plugin: ‘com.didi.virtualapk.host’在app中添...

2019-08-12 18:35:27 905

原创 Android插件化——高手必备的Hook技术

1、Hook技术之动态代理Hook技术的基础和必备技术是动态代理,关于动态代理的使用和原理参见Java动态代理2、Binder Hook(Hook 系统服务)2.1、系统获取服务的原理ContextImpl.getSystemService(String name) @Overridepublic Object getSystemService(String name) { ...

2019-08-11 17:27:32 1430

空空如也

空空如也

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

TA关注的人

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