我们知道,要启动一个应用,就需要知道应用启动Activity的名称,可是启动Activity的ACTION参数,这样就可以通过startActivity(Intent)来启动,如:
/**被启动的应用的包名为com.xx.xx,应用的入口为com.xx.xx.TestLaunchActivity**/
Intent intent = new Intent();
...
分类:
移动开发 时间:
2015-04-16 12:31:00
阅读次数:
124
了解了标准的启动模式,是使用任务栈,先进后出,后进先出的模式进行启动的,下面我们来看另外一个singleTop启动模式。1、我们来看图,这个页面我增加了2个按钮,分表转A页面和B页面,先来看A,我们的taskid=18,实例=*f648
2、点击【跳转A页面Activity】,发现了吗,没有变化,实例还是*f648
3、我们点击【跳转B页面Activity】,taskid=18,实例=*54f0...
分类:
移动开发 时间:
2015-04-16 12:27:27
阅读次数:
214
我们先来运行一段程序,看看效果。看下图,taskID=15,实例*89270结尾
再点击刷新按钮,如下图,发现taskID没有变,但是实例变了*bead0
在刷新一次,同上,实例变成*d0348。
下面,我们点击返回按钮,看下图
再点击返回按钮
看完上面一组操作,我们是否发现,刷新后taskid没有变化,但是实例在不断变化,当点击返回按钮时,返回的是最近生成的一个实例,这里有一个栈的概念,...
分类:
移动开发 时间:
2015-04-16 12:26:06
阅读次数:
210
SystemServer也是系统的一个重要的守护进程,从SystemServer的进程中,我们看到了系统的各种关键的Service的启动。
另外,根据前面的zygote的分析,我们知道了systemServer在android的启动过程中是肯定要启动的。
因为在init.rc里面,已经指定了要start-system-server = true.
那么在zygote中,我们看到了如下的code...
分类:
移动开发 时间:
2015-04-13 12:54:17
阅读次数:
526
移动端重构系列 // iPhone // iPhone Retina // iPhone 5 // iPad portrait // iPad landscape // iPad Retina portrait // iPad Retina landscape ...
分类:
移动开发 时间:
2015-04-03 11:13:04
阅读次数:
139
场景:新服务器发布系统:windows server 2012程序环境:iis8.5,.net4.0错误:空白页;System.ServiceModel,Version=3.0.0.0失败分析原因:空白页是因为相关的服务没有打开,servicemodel失败是由于安装了高版本的.net解决方法:服务...
分类:
其他好文 时间:
2015-04-03 09:10:32
阅读次数:
135
首先zygote创建了appruntime的对象,并调用他的start。此后的活动由AppRuntime来控制
然后调用startVM来创建了虚拟机,调用startReg来注册JNI的函数
通过JNI调用zygoteInit进入了java的世界
调用registerZygoteSocket来响应子孙后代的请求,同时调用preload函数进行资源的预加载
调用startSystemServer来进行系统启动的后续工作
完成了java世界的初创工作后,变进入了select循环,来处理后续的请求。...
分类:
移动开发 时间:
2015-03-31 18:04:50
阅读次数:
196
在前面的文章分析完init.rc的解析以后,我们知道现在action按照init.c的main函数中的秩序,维护了一条qlist的链表,listnode为action_qlist
service也维护了一条链表,listnode为service_list。
那么,在android的启动过程中,action和service是如何被启动的呢?
我们接下来再回到我们一直分析的init.c的main函数中来看一下。...
分类:
移动开发 时间:
2015-03-30 18:41:41
阅读次数:
270
在分析完解析init.rc的action之后,剩下的一部分就是解析service了。
而解析service还是需要回到parse_config里面来。根据前面的知识,我们也可以很容易的知道在关键字为section的时候,会进入到parse_new_section。
这里会先执行parse_service,然后将service以及后面跟的option设置为执行parse_line:parse_line_service。
要理解service的解析流程的话,首先要关注的就是service的结构体。...
分类:
移动开发 时间:
2015-03-30 16:36:10
阅读次数:
141
我想此文一出应该会引起业界强烈反响,很都头疼的问题可以得以解决
首先我们来探讨一个 apk 是如何启动的,
OK,首先你得安装这个apk,然后你点击图标,结果apk就启动了,看到了画面,完成。
第一个问题:点击apk图标的时候系统做了什么事情?
打开 logcat 新建一个过滤器以 ActivityManager 为 Tag,清空logcat,点击apk图标,你可以看到下面...
分类:
其他好文 时间:
2015-03-29 23:43:00
阅读次数:
195