韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha

adb shell 后  用 ps 命令 回车 可以看到 运行的进程。 如下结果:

cts 是测试

====

ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 300 208 c009b74c 0000ca4c S /init
root 2 0 0 0 c004e72c 00000000 S kthreadd
root 3 2 0 0 c003fdc8 00000000 S ksoftirqd/0
root 4 2 0 0 c004b2c4 00000000 S events/0
root 5 2 0 0 c004b2c4 00000000 S khelper
root 6 2 0 0 c004b2c4 00000000 S suspend
root 7 2 0 0 c004b2c4 00000000 S kblockd/0
root 8 2 0 0 c004b2c4 00000000 S cqueue
root 9 2 0 0 c018179c 00000000 S kseriod
root 10 2 0 0 c004b2c4 00000000 S kmmcd
root 11 2 0 0 c006fc74 00000000 S pdflush
root 12 2 0 0 c006fc74 00000000 S pdflush
root 13 2 0 0 c00744e4 00000000 S kswapd0
root 14 2 0 0 c004b2c4 00000000 S aio/0
root 22 2 0 0 c017ef48 00000000 S mtdblockd
root 23 2 0 0 c004b2c4 00000000 S kstriped
root 24 2 0 0 c004b2c4 00000000 S hid_compat
root 25 2 0 0 c004b2c4 00000000 S rpciod/0
root 26 2 0 0 c019d16c 00000000 S mmcqd
root 27 1 740 256 c0158eb0 afd0d8ac S /system/bin/sh
system 28 1 808 264 c01a94a4 afd0db4c S /system/bin/servicemanager
root 29 1 3736 436 ffffffff afd0e1bc S /system/bin/vold
root 30 1 3716 400 ffffffff afd0e1bc S /system/bin/netd
root 31 1 668 240 c01b52b4 afd0e4dc S /system/bin/debuggerd
radio 32 1 5392 548 ffffffff afd0e1bc S /system/bin/rild
root 33 1 101956 15508 c009b74c afd0dc74 S zygote
media 34 1 22764 1208 ffffffff afd0db4c S /system/bin/mediaserver
root 35 1 812 340 c02181f4 afd0d8ac S /system/bin/installd
keystore 36 1 1616 280 c01b52b4 afd0e4dc S /system/bin/keystore
root 37 1 740 256 c003da38 afd0e7bc S /system/bin/sh
root 38 1 840 344 c00b8fec afd0e90c S /system/bin/qemud
root 40 1 3400 192 ffffffff 0000ecc4 S /sbin/adbd
root 51 37 796 312 c02181f4 afd0d8ac S /system/bin/qemu-props
system 59 33 178760 25892 ffffffff afd0db4c S system_server

app_23 109 33 139644 18480 ffffffff afd0eb08 S jp.co.omronsoft.openwnn
radio 113 33 147592 17820 ffffffff afd0eb08 S com.android.phone
app_25 114 33 145304 19044 ffffffff afd0eb08 S com.android.launcher
system 119 33 137000 13900 ffffffff afd0eb08 S com.android.settings
app_0 152 33 137520 17104 ffffffff afd0eb08 S android.process.acore
app_9 160 33 131632 14776 ffffffff afd0eb08 S com.android.alarmclock
app_22 171 33 131956 14260 ffffffff afd0eb08 S com.android.music
app_12 179 33 141220 18308 ffffffff afd0eb08 S com.android.quicksearchbox
app_7 194 33 130796 13736 ffffffff afd0eb08 S com.android.protips
app_2 203 33 133560 15260 ffffffff afd0eb08 S android.process.media
app_15 214 33 144568 14692 ffffffff afd0eb08 S com.android.mms
app_30 230 33 135100 16052 ffffffff afd0eb08 S com.android.email
app_19 250 33 135596 15880 ffffffff afd0eb08 S com.android.browser
root 262 40 740 332 c003da38 afd0e7bc S /system/bin/sh
root 264 262 888 336 00000000 afd0d8ac R ps
#

init 进程:
当liunx内核完成启动之后,启动的第一个进程,它属于用户级进程,也属于一个引导进程。
1 创建文件目录 2 挂载sdcard 3 引导其他的进程:ril-d (打电话 modem) bootsound bootanim ... servicemanager zygote

servicemanager进程:管理了底层的服务
zygote 进程:1 创建了runtime 2 创建了dalvik vm 3 创建上层所有的应用(给这里应用分配内存空间,进程的id,进程能访问的)

只有servicemanager进程 和zygote 进程这个两个进程都起来之后,才会建立一个真正的android空间

2 com.android.phone 电话应用:
持久应用:
条件:
1 应用程序的apk文件必须存在于:/system/app
2 应用的AndroidManifest.xml文件:
<Appliaction android:persistent="true"

3 launcher

查看源码的流程:
1 adb shell
ps
2 system\core\init\init.c
3 frameworks\base\cmds\runtime\ServiceManager.cpp
#ifndef HAVE_ANDROID_OS
QuickRuntime* runt = new QuickRuntime();
runt->start("com/android/server/SystemServer",
false /* spontaneously fork system server from zygote */);
#endif
4 frameworks\base\services\java\com\android\server\SystemServer.java
native init1()
5 frameworks\base\services\jni\com_android_server_SystemServer.cpp
system_init();
6 frameworks\base\cmds\system_server\library\system_init.cpp
SensorService::instantiate();
CameraService::instantiate();

AndroidRuntime* runtime = AndroidRuntime::getRuntime();
runtime->callStatic("com/android/server/SystemServer", "init2");

7 frameworks\base\services\java\com\android\server\SystemServer.java
init2();
((ActivityManagerService)ActivityManagerNative.getDefault())
.systemReady(new Runnable() {}

qb.setTables("sms, (SELECT thread_id AS group_thread_id, MAX(date)AS group_date,"
+ "COUNT(*) AS msg_count FROM sms GROUP BY thread_id) AS groups");
qb.appendWhere("sms.thread_id = groups.group_thread_id AND sms.date ="
+ "groups.group_date");
qb.setProjectionMap(sConversationProjectionMap);

SELECT thread_id AS group_thread_id, MAX(date)AS group_date,COUNT(*) AS msg_count FROM sms GROUP BY thread_id AS groups

sConversationProjectionMap.put(Sms.Conversations.SNIPPET,sinppet
"sms.body AS snippet");
sConversationProjectionMap.put(Sms.Conversations.THREAD_ID,thread_id
"sms.thread_id AS thread_id");
sConversationProjectionMap.put(Sms.Conversations.MESSAGE_COUNT,msg_count
"groups.msg_count AS msg_count");

select
sms.body AS snippet,sms.thread_id AS thread_id,groups.msg_count AS msg_count
from
sms,(SELECT thread_id AS group_thread_id, MAX(date)AS group_date,COUNT(*) AS msg_count FROM sms GROUP BY thread_id) AS groups
where
sms.thread_id = groups.group_thread_id AND sms.date = groups.group_date

1 projectionIn != null
1.1 mProjectionMap != null
1.2 mProjectionMap == null projectionIn

2 projectionIn = = null && mProjectionMap != null mProjectionMap.getValue()

select thread_id,name

select sms.thread_id AS thread_id address as

=====

====

过滤原理 过滤的实现

handler 原理

【2012黑马程序员】短信智能管理器day01

=======

android 启动流程的更多相关文章

  1. Android 启动流程分析

    原文:https://www.jianshu.com/p/a5532ecc8377 作者曾经在高通的Android性能组工作,主要工作是优化Android Application的启动时间. APP基 ...

  2. Android启动流程

    Android是一个基于Linux的开源操作系统.x86(x86是一系列的基于intel 8086 CPU的计算机微处理器指令集架构)是linux内核部署最常见的系统.然而,所有的Android设备都 ...

  3. Tiny4412 Android 启动流程

    Android系统的启动主要包括三个阶段: ①BootLoader启动 ②Linux Kernel启动 ③Android系统启动 前面我们大致分析了前面两个步骤,即u-boot和内核的启动流程(内核启 ...

  4. android 启动流程 相关 杂项记录

    Android原生流程 Init进程 主要流程及分支梳理 ueventd_main()watchdogd_main()主要流程a) 公共部分 增加PATH 环境变量初始化内核日志,打开/dev/kms ...

  5. 深入浅出 - Android系统移植与平台开发(四)- Android启动流程

    作者:唐老师,华清远见嵌入式学院讲师. 一.Android init进程启动 还是从Linux的启动开始吧.Linux被bootloader加载到了内存之后,开始运行,在初始化完 Linux运行环境之 ...

  6. android 启动流程 相关2 init进程 属性服务

    Init属性服务 系统属性服务 属性梳理 来源和读取时机 来源:内核参数 ro.kernel.*   代表有qemu内核参数才会设置(在虚拟机中) ro.boot.*     1.内核设备树相关的设备 ...

  7. 【转】android SystemUI 流程分析

    android4 SystemUI 流程分析 什么是SystemUI? 对于Phone来说SystemUI指的是:StatusBar(状态栏).NavigationBar(导航栏).而对于Tablet ...

  8. Android进阶系列之源码分析Activity的启动流程

    美女镇楼,辟邪! 源码,是一个程序猿前进路上一个大的而又不得不去翻越障碍,我讨厌源码,看着一大堆.5000多行,要看完得啥时候去了啊.不过做安卓的总有这一天,自从踏上这条不归路,我就认命了.好吧,我慢 ...

  9. Android FM模块学习之一 FM启动流程

    最近在学习FM模块,FM是一个值得学习的模块,可以从上层看到底层. 上层就是FM的按扭操作和界面显示,从而调用到FM底层驱动来实现广播收听的功能. FM启动流程:如下图: 先进入FMRadio.jav ...

随机推荐

  1. (64位)本体学习程序(ontoEnrich)系统配置说明文档

    1系统环境 64位 Ubuntu 2 第三方依赖库配置 boost_1_44_0 #解压boost_1_44_0.tar.gz 到 /usr/local.如果出现权限问题,请用sudo执行该命令 ta ...

  2. [php]apache的权限解释

    格式如下: <Directory d:/...> Order allow,deny Allow from all Allow from 127.0.0.1 Deny from 110.0. ...

  3. 【vijos】P1190 繁忙的都市

    [算法]最小生成树 #include<cstdio> #include<algorithm> using namespace std; ; ]; int fa[maxn],he ...

  4. HDU 2191 珍惜现在,感恩生活 (dp)

    题目链接 Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都 ...

  5. 固定bottom,页面其它可滑动实现方案

    利用flex布局, <html> <body> <div class='container'> <div class='content'></di ...

  6. KEA128单片机启动代码分析

    ;/*****************************************************************************; * @file: startup_SK ...

  7. 五. Jmeter--HTTP Cookie Manager

    1. 添加HTTP Cookie Manager 2.添加登录login http,request info 和 HTTP Header Manager 中的信息是从fiddler中拿的, 至于hea ...

  8. arch优化开机

    查看开机时间 systemd-analyze 具体开机时间 systemd-analyze blame 你可以systemctl --all | grep not-found 查看有哪些服务挂掉了.然 ...

  9. linux内核数据结构之链表【转】

    转自:http://www.cnblogs.com/Anker/p/3475643.html 1.前言 最近写代码需用到链表结构,正好公共库有关于链表的.第一眼看时,觉得有点新鲜,和我之前见到的链表结 ...

  10. centos-testlink安装使用手册

    1.新建虚拟机设置 网卡必须选择ovirtmgmt模式 2.Centos6.3系统安装 说明: 1.CentOS 6.3系统镜像有两个,安装系统只用到第一个镜像即CentOS-6.3-i386-bin ...