自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android DexHelper帮你解决65536问题

Android DexHelper帮你解决65536问题一. 前景随着Android平台的持续成长,Android应用的大小也在增加。当应用及其引用的库达到特定大小时,会遇到构建错误,指明你的应用已达到Android应用构建架构的极限。一般情况下,你会获得类似的错误信息:Dex: The number of method references in a .dex file cannot exceed

2017-08-06 08:44:45 2083 2

原创 VirtualApp 进程分配与管理

一. 前景 在Android中每个App在启动前必须先创建一个进程,该进程是由Zygote fork出来的,进程具有独立的资源空间,用于承载App上运行的各种Activity/Service等组件。进程对于上层应用来说是完全透明的,这也是google有意为之,让App程序都是运行在Android Runtime。大多数情况一个App就运行在一个进程中,除非在AndroidManifest.xml

2017-08-05 10:16:47 3772

原创 VirtualApp 中的进程

一. 什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 – 来自百度百科二. VA进程VA在运行时,存在四种类型的进程:

2017-08-05 10:15:12 2552

原创 VirtualApp Java层Hook基础

VirtualApp Java层Hook基础-反射注入Hook技术是VirtualApp(后续简称VA)的核心实现原理之一。0x00. 什么是Hook Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。

2017-07-13 12:29:15 6010

原创 Android-skin-support: 实现原理

背景换肤方案原理在网上已经很多了, 这里不再详细描述, 强迫症的我总是想让提供给别人使用的SDK尽量好用, 哪怕是给自己带来额外的工作量, 经过一段时间的奋斗, 实现了一个自我感觉良好的换肤框架.这里主要来看看Android 源码中”com.android.support:appcompat-v7”包的实现, 以及源码思想在Android-skin-support中的应用 – 如何打造一款好用的换肤。

2017-01-18 20:25:59 6824 12

原创 Android-skin-support 一款用心去做的Android 换肤框架

Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验.只需要两行代码, 就可以实现换肤, 你值得拥有!!!

2017-01-17 21:03:10 19783 20

原创 从零开始进入ArchLinux的世界-安装

每次重新安装ArchLinux, 我都需要看一遍wiki, 在这里记我安装archlinux的整个过程,方便以后快速获取有用的信息.

2016-12-18 15:34:11 6628

原创 Android动态部署六:如何从插件apk中启动BroadcastReceiver和ContentProvider

实现Android动态部署的过程中最重要的是从插件apk中启动四大组件,经过前面几篇文章的分析,现在只剩下BroadcastReceiver和ContentProvider了,BroadcastReceiver是可以通过java代码动态注册的,这篇文章中会详细分析一下ContentProvider的安装流程以及调用getContentResolver方法后的获取ContentProvider的流程。

2016-04-07 11:35:00 4098 1

原创 Android动态部署五:如何从插件apk中启动Service

接下来我们通过分析Service启动流程来看看宿主apk如何启动Android四大组件之Service。

2016-04-06 14:04:43 5794

原创 Android动态部署四:如何从插件apk中启动Activity(二)

接下来我们来详细分析一下为什么在启动插件apk中的Activity时我们需要替换Context, Resources, AssetManager, Theme, Title, Application等信息。

2016-04-05 15:46:26 2562 3

原创 Android动态部署三:如何从插件apk中启动Activity(-)

接下来我们就来分析一下从Activity中startActivity的流程,以及如何实现动态部署,怎样从插件apk中启动Activity。

2016-03-18 23:05:07 2958 1

原创 Android动态部署二:APK安装及AndroidManifest.xml解析流程分析

在上一篇文章:Android动态部署:Google原生Split APK浅析中,简单描述了Google实现SplitApk的机制。 接下来我们就开始一步步的实践,自己手动实现非安装apk的动态加载。

2016-03-14 15:30:32 6196

原创 Android动态部署一:Google原生Split APK浅析

在分析Android动态部署原理之前,我们先通过以下四点来分析一下Google原生支持的Split APK机制,了解了Split APK机制之后,可能会对大家深入理解Android动态部署原理有一定的帮助。1. 什么是Split APK2. 在实际开发中如何应用3. 如何安装4. SplitApk解析时序图

2016-03-14 12:20:41 14259 2

原创 浅谈android add_service PERMISSION DENIED问题

背景:在Android开发中,经常会用到ServiceManager.addService(name, service);添加系统服务 也许你会很迷惑,在程序运行时,部分service name能成功添加,而部分service name会抛出如下异常:Tag: ServiceManagerMessage: add_service('xxx',xx) uid=xxxx - PERMISSION DENIED

2016-01-05 12:20:41 11015

原创 Android 5.1 Contacts源码分析(五):PeopleActivity

1. PeopleActivity主界面UI显示下图为联系人主界面(PeopleActivity)的类图: PeopleActivity除了实现了类图中的四个接口,还实现了View.OnCreateContextMenuListener和View.OnClickListener,其中Activity源码中已经实现了OnCreateContextMenuListener:public class

2015-10-10 19:06:45 2192 3

原创 Android 5.1 Contacts源码分析(四):Contacts模块ListView Adapter结构

1. Contacts模块列表界面Adapter结构:下图是联系人模块列表窗口对应的Adapter类图: 从上一篇文章Contacts模块Fragment结构中已知,联系人列表界面中的ListView的Adapter大部分继承自 ContactEntryListAdapter。 而从该类图中可知: ContactEntryListAdapter最终继承自CompositeCursorAdapt

2015-10-08 19:04:00 2159

原创 Android 5.1 Contacts源码分析(三):Contacts模块Fargment结构

1. Contacts 模块Fragment结构:下图为联系人模块主要窗口中的Fragment类图: 从类图中可以看出,联系人大部分原生的列表界面(主界面,多选界面等,余下Fragment未列出),其中的Fragment都继承自ContactEntryListFragment,,而基类ContactEntryListFragment<T extends ContactEntryListAdapte

2015-09-29 20:33:52 2476

原创 Android 5.1 Contacts源码分析(二):Contacts模块主要窗口

Contacts模块中Activity的结构: 基类ContactsActivity实现了ContactSaveService.java中的Listener接口,ContactSaveService中封装了大量联系人操作的接口。 例如: createNewRawContactIntent(),createSaveContactIntent

2015-09-27 02:46:07 3014

原创 Android 5.1 Contacts源码分析(一):Contacts模块文件结构

Contacts目录下Android.mk文件分析;Contacts文件结构;

2015-09-25 19:14:48 2966

原创 在Android中使用ViewPager实现左右滑动页面

通过学习源码,实现了一个简单的demo,在Android中使用ViewPager实现左右滑动页面。

2015-01-20 10:33:49 1414

原创 android屏幕旋转可能带来的问题

前提:在开发人员没有明确指定屏幕方向并且没有设置android:configChanges时,横竖屏切换过程中,Activity的生命周期会重新加载,属于该Activity的Fragment的生命周期也会重新加载。我在实际工作中碰到的故障是这样的:在当前Activity中用户输入了他的信息点击完成保存数据,在保存数据的同时为了增强用户体验,会有一个SimpleProgressDialog显

2014-10-27 23:05:55 2219

仿网易云音乐换肤

仿网易云音乐换肤

2017-01-17

RxAndroid/RxJava jar

RxAndroid RxJava jar包

2016-02-24

空空如也

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

TA关注的人

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