<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ximsfei的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ximsfei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ximsfei]]></copyright><item><title><![CDATA[Android DexHelper帮你解决65536问题]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/76738033</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/76738033</guid><author>ximsfei</author><pubDate>Sun, 06 Aug 2017 08:44:45 +0800</pubDate><description><![CDATA[Android DexHelper帮你解决65536问题一. 前景随着Android平台的持续成长，Android应用的大小也在增加。当应用及其引用的库达到特定大小时，会遇到构建错误，指明你的应用已达到Android应用构建架构的极限。一般情况下，你会获得类似的错误信息：Dex: The number of method references in a .dex file cannot exceed]]></description><category></category></item><item><title><![CDATA[VirtualApp 进程分配与管理]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/76706021</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/76706021</guid><author>ximsfei</author><pubDate>Sat, 05 Aug 2017 10:16:47 +0800</pubDate><description><![CDATA[一. 前景
  在Android中每个App在启动前必须先创建一个进程，该进程是由Zygote fork出来的，进程具有独立的资源空间，用于承载App上运行的各种Activity/Service等组件。进程对于上层应用来说是完全透明的，这也是google有意为之，让App程序都是运行在Android Runtime。大多数情况一个App就运行在一个进程中，除非在AndroidManifest.xml]]></description><category></category></item><item><title><![CDATA[VirtualApp 中的进程]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/76706006</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/76706006</guid><author>ximsfei</author><pubDate>Sat, 05 Aug 2017 10:15:12 +0800</pubDate><description><![CDATA[一. 什么是进程
  进程（Process）是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础。在早期面向进程设计的计算机结构中，进程是程序的基本执行实体；在当代面向线程设计的计算机结构中，进程是线程的容器。程序是指令、数据及其组织形式的描述，进程是程序的实体。 – 来自百度百科
二. VA进程VA在运行时，存在四种类型的进程:]]></description><category></category></item><item><title><![CDATA[VirtualApp Java层Hook基础]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/75050164</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/75050164</guid><author>ximsfei</author><pubDate>Thu, 13 Jul 2017 12:29:15 +0800</pubDate><description><![CDATA[VirtualApp Java层Hook基础-反射注入Hook技术是VirtualApp(后续简称VA)的核心实现原理之一。0x00. 什么是Hook
  Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制，中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后，一旦发生已hook事件，对该事件进行hook的程序就会收到系统的通知，这时程序就能在第一时间对该事件做出响应。]]></description><category></category></item><item><title><![CDATA[Android-skin-support: 实现原理]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/54604310</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/54604310</guid><author>ximsfei</author><pubDate>Wed, 18 Jan 2017 20:25:59 +0800</pubDate><description><![CDATA[背景换肤方案原理在网上已经很多了, 这里不再详细描述, 强迫症的我总是想让提供给别人使用的SDK尽量好用, 哪怕是给自己带来额外的工作量, 经过一段时间的奋斗, 实现了一个自我感觉良好的换肤框架.这里主要来看看Android 源码中”com.android.support:appcompat-v7”包的实现, 以及源码思想在Android-skin-support中的应用 – 如何打造一款好用的换肤。]]></description><category></category></item><item><title><![CDATA[Android-skin-support 一款用心去做的Android 换肤框架]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/54586827</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/54586827</guid><author>ximsfei</author><pubDate>Tue, 17 Jan 2017 21:03:10 +0800</pubDate><description><![CDATA[Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验.只需要两行代码, 就可以实现换肤, 你值得拥有!!!]]></description><category></category></item><item><title><![CDATA[从零开始进入ArchLinux的世界-安装]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/53727846</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/53727846</guid><author>ximsfei</author><pubDate>Sun, 18 Dec 2016 15:34:11 +0800</pubDate><description><![CDATA[每次重新安装ArchLinux, 我都需要看一遍wiki, 在这里记我安装archlinux的整个过程，方便以后快速获取有用的信息.]]></description><category></category></item><item><title><![CDATA[Android动态部署六：如何从插件apk中启动BroadcastReceiver和ContentProvider]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/51083464</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/51083464</guid><author>ximsfei</author><pubDate>Thu, 07 Apr 2016 11:35:00 +0800</pubDate><description><![CDATA[实现Android动态部署的过程中最重要的是从插件apk中启动四大组件，经过前面几篇文章的分析，现在只剩下BroadcastReceiver和ContentProvider了，BroadcastReceiver是可以通过java代码动态注册的，这篇文章中会详细分析一下ContentProvider的安装流程以及调用getContentResolver方法后的获取ContentProvider的流程。]]></description><category></category></item><item><title><![CDATA[Android动态部署五：如何从插件apk中启动Service]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/51072332</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/51072332</guid><author>ximsfei</author><pubDate>Wed, 06 Apr 2016 14:04:43 +0800</pubDate><description><![CDATA[接下来我们通过分析Service启动流程来看看宿主apk如何启动Android四大组件之Service。]]></description><category></category></item><item><title><![CDATA[Android动态部署四：如何从插件apk中启动Activity（二）]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/51063454</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/51063454</guid><author>ximsfei</author><pubDate>Tue, 05 Apr 2016 15:46:26 +0800</pubDate><description><![CDATA[接下来我们来详细分析一下为什么在启动插件apk中的Activity时我们需要替换Context, Resources, AssetManager, Theme, Title, Application等信息。]]></description><category></category></item><item><title><![CDATA[Android动态部署三：如何从插件apk中启动Activity（－）]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/50926406</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/50926406</guid><author>ximsfei</author><pubDate>Fri, 18 Mar 2016 23:05:07 +0800</pubDate><description><![CDATA[接下来我们就来分析一下从Activity中startActivity的流程，以及如何实现动态部署，怎样从插件apk中启动Activity。]]></description><category></category></item><item><title><![CDATA[Android动态部署二：APK安装及AndroidManifest.xml解析流程分析]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/50886134</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/50886134</guid><author>ximsfei</author><pubDate>Mon, 14 Mar 2016 15:30:32 +0800</pubDate><description><![CDATA[在上一篇文章:Android动态部署：Google原生Split APK浅析中，简单描述了Google实现SplitApk的机制。 
接下来我们就开始一步步的实践，自己手动实现非安装apk的动态加载。]]></description><category></category></item><item><title><![CDATA[Android动态部署一：Google原生Split APK浅析]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/50884862</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/50884862</guid><author>ximsfei</author><pubDate>Mon, 14 Mar 2016 12:20:41 +0800</pubDate><description><![CDATA[在分析Android动态部署原理之前，我们先通过以下四点来分析一下Google原生支持的Split APK机制，了解了Split APK机制之后，可能会对大家深入理解Android动态部署原理有一定的帮助。
1. 什么是Split APK
2. 在实际开发中如何应用
3. 如何安装
4. SplitApk解析时序图]]></description><category></category></item><item><title><![CDATA[浅谈android add_service PERMISSION DENIED问题]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/50461670</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/50461670</guid><author>ximsfei</author><pubDate>Tue, 05 Jan 2016 12:20:41 +0800</pubDate><description><![CDATA[背景：在Android开发中，经常会用到ServiceManager.addService(name, service);添加系统服务 
也许你会很迷惑，在程序运行时，部分service name能成功添加，而部分service name会抛出如下异常：
Tag: ServiceManager
Message: add_service('xxx',xx) uid=xxxx - PERMISSION DENIED]]></description><category></category></item><item><title><![CDATA[Android 5.1 Contacts源码分析（五）：PeopleActivity]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/49027981</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/49027981</guid><author>ximsfei</author><pubDate>Sat, 10 Oct 2015 19:06:45 +0800</pubDate><description><![CDATA[1. PeopleActivity主界面UI显示下图为联系人主界面（PeopleActivity）的类图： 
 
PeopleActivity除了实现了类图中的四个接口，还实现了View.OnCreateContextMenuListener和View.OnClickListener，其中Activity源码中已经实现了OnCreateContextMenuListener：public class]]></description><category></category></item><item><title><![CDATA[Android 5.1 Contacts源码分析（四）：Contacts模块ListView Adapter结构]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/48976419</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/48976419</guid><author>ximsfei</author><pubDate>Thu, 08 Oct 2015 19:04:00 +0800</pubDate><description><![CDATA[1. Contacts模块列表界面Adapter结构：下图是联系人模块列表窗口对应的Adapter类图： 
从上一篇文章Contacts模块Fragment结构中已知，联系人列表界面中的ListView的Adapter大部分继承自 ContactEntryListAdapter。 
而从该类图中可知： 
ContactEntryListAdapter最终继承自CompositeCursorAdapt]]></description><category></category></item><item><title><![CDATA[Android 5.1 Contacts源码分析（三）：Contacts模块Fargment结构]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/48810909</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/48810909</guid><author>ximsfei</author><pubDate>Tue, 29 Sep 2015 20:33:52 +0800</pubDate><description><![CDATA[1. Contacts 模块Fragment结构：下图为联系人模块主要窗口中的Fragment类图： 
从类图中可以看出，联系人大部分原生的列表界面(主界面，多选界面等，余下Fragment未列出)，其中的Fragment都继承自ContactEntryListFragment,，而基类ContactEntryListFragment<T extends ContactEntryListAdapte]]></description><category></category></item><item><title><![CDATA[Android 5.1 Contacts源码分析（二）：Contacts模块主要窗口]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/48760537</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/48760537</guid><author>ximsfei</author><pubDate>Sun, 27 Sep 2015 02:46:07 +0800</pubDate><description><![CDATA[Contacts模块中Activity的结构： 
基类ContactsActivity实现了ContactSaveService.java中的Listener接口，ContactSaveService中封装了大量联系人操作的接口。 
例如： 
createNewRawContactIntent(),createSaveContactIntent]]></description><category></category></item><item><title><![CDATA[Android 5.1 Contacts源码分析（一）：Contacts模块文件结构]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/48736417</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/48736417</guid><author>ximsfei</author><pubDate>Fri, 25 Sep 2015 19:14:48 +0800</pubDate><description><![CDATA[Contacts目录下Android.mk文件分析;
Contacts文件结构；]]></description><category></category></item><item><title><![CDATA[在Android中使用ViewPager实现左右滑动页面]]></title><link>https://blog.youkuaiyun.com/ximsfei/article/details/42914485</link><guid>https://blog.youkuaiyun.com/ximsfei/article/details/42914485</guid><author>ximsfei</author><pubDate>Tue, 20 Jan 2015 10:33:49 +0800</pubDate><description><![CDATA[通过学习源码，实现了一个简单的demo，在Android中使用ViewPager实现左右滑动页面。]]></description><category></category></item></channel></rss>