第一章 Android体系与系统架构

1.Dalvik 和 ART
Dalvik好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用。
ART好比是一辆组装好了的自行车,装好就可以骑了。

2.一个可以查看Android源代码网站:http://androidxref.com/

目录结构:
Makefile (描述Android各个组件间的联系并指导它们进行自动化编译)
bionic (bionic C库)
bootable (启动引导相关代码)
build (系统编译规则等基础开发包配置)
cts (Google兼容性测试标准)
dalvik (Dalvik虚拟机)
development (应用程序开发相关)
external (android使用的一些开源模块)
frameworks (Framework框架核心)
hardware (厂商硬件适配层HAL)
out (编译完成后的代码输出目录)
packages (应用程序包)
prebuilt (x86和arm架构下预编译资源)
sdk (sdk及模拟器)
system (底层文件系统库、应用及组件)
vendor (厂商定制代码)

3.Android系统目录
/system/data是开发者特别关心的两个目录

/system目录下主要有:/app/fonts/framework/lib/media/usr等子目录
例如,查看系统的属性信息文件 /system/build.prop

shell@falcon_umts:/system $ cat build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=LMY47M.M003
ro.build.display.id=LMY47M.M003
ro.build.version.incremental=8
ro.build.version.sdk=22
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=5.1
ro.build.date=Wed Aug 19 10:44:57 PDT 2015
ro.build.date.utc=1440006297
ro.build.type=user
ro.build.user=hdsplat
ro.build.host=buildlinux16
ro.build.tags=release-keys
ro.build.flavor=falcon_gpe-user
ro.product.model=XT1032
ro.product.brand=motorola
ro.product.name=falcon_gpe
ro.product.device=falcon_umts
ro.product.board=MSM8226
......

/data目录下主要有/app/data/system/misc等子目录,其中/data/data是开发者访问最多的目录,这里包含了app的数据信息、文件信息以及数据库信息等。

第二章 Android开发工具新接触

1.adb命令的来源
/system/core/toolbox/frameworks/base/cmds是所有adb命令和shell命令的来源

2.常用的android命令
android list avds 列出所有创建的android模拟器
android list targets 列出我们所有的SDK可用版本

hujiawei-MBPR:hexoblog hujiawei$ android list targets
Available Android targets:
----------
id: 1 or "android-8"
Name: Android 2.2
Type: Platform
API level: 8
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
Tag/ABIs : default/armeabi
----------
id: 2 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
Tag/ABIs : default/armeabi
----------
id: 3 or "android-15"
Name: Android 4.0.3
Type: Platform
API level: 15
Revision: 5
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800
Tag/ABIs : no ABIs.
----------

3.常用的adb命令
adb push <local> <remote>adb pull <remote> <local> (文件传输)
adb install xxxadb uninstall yyy (apk安装和卸载)
adb usbadb tcpip <port>adb connectadb devices (连接相关命令)
adb start-serveradb kill-serveradb rebootadb remount (重新挂载系统分区,使系统分区重新可写)

adb shell相关命令:
adb shell df (查看系统盘符)
adb shell input keyevent (模拟按键输入,例如adb shell input keyevent 3表示按下HOME键)
adb shell input touchscreen (模拟触屏输入,例如adb shell input touchscreen swipe 18 665 18 350 )

adb shell dumpsys activity activities (查看activity运行状态)

hujiawei-MBPR:hexoblog hujiawei$ adb shell dumpsys activity activities
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
Display #0 (activities from top to bottom):
Stack #0:
Task id #279
* TaskRecord{2fbcccec #279 A=com.android.launcher U=0 sz=1}
userId=0 effectiveUid=u0a15 mCallingUid=1000 mCallingPackage=android
affinity=com.android.launcher
intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/com.android.launcher2.Launcher}
realActivity=com.android.launcher/com.android.launcher2.Launcher
autoRemoveRecents=false isPersistable=true numFullscreen=1 taskType=1 mTaskToReturnTo=0
rootWasReset=false mNeverRelinquishIdentity=true mReuseTask=false
Activities=[ActivityRecord{74b834e u0 com.android.launcher/com.android.launcher2.Launcher t279}]
askedCompatMode=false inRecents=true isAvailable=true
lastThumbnail=null lastThumbnailFile=/data/system/recent_images/279_task_thumbnail.png
hasBeenVisible=true firstActiveTime=1448539994507 lastActiveTime=1448539994507 (inactive for 58s)

adb pm xxx (Package管理信息)
例如,查看所有的packages

hujiawei-MBPR:hexoblog hujiawei$ adb shell pm list packages -f
package:/system/app/YouTube/YouTube.apk=com.google.android.youtube
package:/system/priv-app/TelephonyProvider/TelephonyProvider.apk=com.android.providers.telephony
package:/system/app/MediaShortcuts/MediaShortcuts.apk=com.google.android.gallery3d
package:/data/app/com.support.android.designlibdemo-1/base.apk=com.support.android.designlibdemo
package:/system/priv-app/Velvet/Velvet.apk=com.google.android.googlequicksearchbox
package:/system/priv-app/CalendarProvider/CalendarProvider.apk=com.android.providers.calendar
package:/data/app/com.imooc.animatedselector-1/base.apk=com.imooc.animatedselector
package:/system/priv-app/MediaProvider/MediaProvider.apk=com.android.providers.media
package:/system/priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk=com.google.android.onetimeinitializer
package:/data/app/com.wandoujia-1/base.apk=com.wandoujia
package:/system/app/Bug2GoStub/Bug2GoStub.apk=com.motorola.bug2go
package:/data/app/com.sina.weibo.sdk.gensign-1/base.apk=com.sina.weibo.sdk.gensign
package:/data/app/com.sohu.inputmethod.sogou-1/base.apk=com.sohu.inputmethod.sogou
package:/system/priv-app/WallpaperCropper/WallpaperCropper.apk=com.android.wallpapercropper
package:/data/app/com.jredu.netease.news-1/base.apk=com.jredu.netease.news

adb am xxx (Activity管理信息)
例如,启动一个activity adb shell am start -n packageName[+className]

hujiawei-MBPR:hexoblog hujiawei$ adb shell am start com.wandoujia
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=com.wandoujia }

OK,本节结束,谢谢阅读。

Android群英传》读书笔记 (1) 第一章 Android体系与系统架构 + 第二章 Android开发工具新接触的更多相关文章

  1. Android群英传笔记——第二章:Android开发工具新接触

    Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...

  2. 读书笔记,《深入理解java虚拟机》,第二章,java内存区域与内存溢出异常

    第二节,运行时数据区域.    在这个章节中,作者给出了一个java虚拟机运行时数据区的框图,图的左侧是方法区和堆,这两个数据区是所有的线程所共享的.然后是虚拟机栈.本地方法栈.还有程序计数器,这三个 ...

  3. Android群英传笔记——摘要,概述,新的出发点,温故而知新,可以为师矣!

    Android群英传笔记--摘要,概述,新的出发点,温故而知新,可以为师矣! 当工作的越久,就越感到力不从心了,基础和理解才是最重要的,所以买了两本书,医生的<Android群英传>和主席 ...

  4. Android群英传帝落篇——程序人生,路漫漫其修远兮,吾将上下而求索!

    Android群英传帝落篇--程序人生,路漫漫其修远兮,吾将上下而求索! 当写这篇博客的时候,自2016-02-22到现在5.2号,一晃眼,也㓟两个多月就过去了,我才将这本书看完,虽然写笔记花了很大的 ...

  5. 第一章 Android体系与系统架构

    1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车, ...

  6. Android群英传笔记——第一章:Android体系与系统架构

    Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...

  7. Android群英传笔记——第九章:Android系统信息和安全机制

    Android群英传笔记--第九章:Android系统信息和安全机制 本书也正式的进入尾声了,在android的世界了,不同的软件,硬件信息就像一个国家的经济水平,军事水平,不同的配置参数,代表着一个 ...

  8. Android群英传笔记——第七章:Android动画机制和使用技巧

    Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最 近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中 ...

  9. Android群英传笔记——第六章:Android绘图机制与处理技巧

    Android群英传笔记--第六章:Android绘图机制与处理技巧 一直在情调,时间都是可以自己调节的,不然世界上哪有这么多牛X的人 今天就开始读第六章了,算日子也刚好一个月了,一个月就读一半,这效 ...

随机推荐

  1. webapp开发——‘手机屏幕分辨率’与‘浏览器分辨率’不要混淆

    关于webApp响应式设计遇到的问题,分享给大家,最近在做一个手机webApp,因为我手机是”米3“,屏幕截图大小是1080宽,所以css样式用@media screen and(min-width: ...

  2. C# 当double数值较大且小数位过多时转化成字符串并保留小数位

    今天在C#中碰到了一个问题,需要将double转换成字符串显示,要求保留小数位. 在网上查询了一下相关的文章 具体如下: double temp=3.1415926; (F)Fixed point:s ...

  3. 让LINQ中的查询语法使用自定义的查询方法

    使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...

  4. 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)

    原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以 ...

  5. 【Linux】基础配置-修改命令提示符的风格

    1,效果图: [groot]$ 2,设置步骤: 编辑~/.bashrc文件,在最后增加设置行: #显示当面目录的最后一层目录#PS1='\[\e[32m\][\u@\h \W]$\[\e[m\]'#只 ...

  6. How to solve "The specified service has been marked for deletion" error

    There may be several causes which lead to the service being stuck in “marked for deletion”. Microsof ...

  7. 修改weblogic jvm启动参数

    进入: D:\Oracle\Middleware\user_projects\domains\base_domain\startWebLogic.cmd 在call 上一行增加: set USER_M ...

  8. angular2 学习笔记 (Typescript - Attribute & reflection)

    refer : https://www.npmjs.com/package/reflect-metadata refer : https://www.typescriptlang.org/docs/h ...

  9. cf E. Fox and Card Game

    http://codeforces.com/contest/389/problem/E 题意:给你n个序列,然后两个人x,y,两个人玩游戏,x从序列的前面取,y从序列的后面取,两个人都想自己得到的数的 ...

  10. Arrays.sort的粗略讲解

    排序算法,基本的高级语言都有一些提供.C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array).用这些排序时,都可以写自己的排序规则. Java API对A ...