玩转 Android 手机,百科全书第一章:了解 Android
什么是Android
Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:Open Handset Alliance)(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。 Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌的Nexus One。
历史
第一台上市的 Android 手机
开发
Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。
2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 ●.so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。
公布前的传闻
Google的东南亚销售与营运常务董事Richard Kimber曾说:"At this point in time, we are very focused on the software, not the phone.(目前我们完全专注于软件而非电话)"。可是Google并未正式否认正在制作电话的传闻,Google可能与一家硬件生产商合作创作 Google Phone。
传言指出Google Phone将提供完全免费的服务,Google会通过广告获取收益。Google Phone的发布日期预期为2009年。
LG宣布将于2007年第二季开始在其手提电话产品中安装Google的软件。
升级
Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做 Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式奶油夹心甜点)和Flan(水果馅饼)。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。
对手机行业的影响
已经与[Sony Ericsson]、[HTC]、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。
发布
1.5 (Cupcake)
基于Linux Kernel 2.6.27 2009年4月30日,官方1.5版本(Cupcake)的Android发布。
主要的更新如下:
● 拍摄/回放视频,并支持上传到youtube
● 支持立体声蓝牙耳机,同时改善自动配对性能
● 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索
● GPS性能大大提高
● 屏幕虚拟键盘
● 主屏幕增加音乐播放器和相框widgets
● 应用程序自动随着手机旋转
● 短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了
● 相机启动速度加快,拍摄图片可以直接上传到picasa
● 来电照片显示
1.6 (Donut)
● 拍摄/回放视频,并支持上传到youtube
● 支持立体声蓝牙耳机,同时改善自动配对性能
● 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索
● GPS性能大大提高
● 屏幕虚拟键盘
● 主屏幕增加音乐播放器和相框widgets
● 应用程序自动随着手机旋转
● 短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了
● 相机启动速度加快,拍摄图片可以直接上传到picasa
● 来电照片显示
1.6 (Donut)
基于Linux Kernel 2.6.29 2009年9月15日, 1.6(Donut)版本SDK发布。主要的更新如下:
● 完全重新设计的Android Market
● 手势支持
● 支持CDMA网络
● 文字转语音系统(TXT-2-speech)
● 快速搜索框
● 全新的拍照界面
● 应用程序耗电查看
● 支持VPN
● 支持更多的屏幕分辨率
● 支持OpenCore2媒体引擎
● 新增面向视觉或听觉困难人的易用性插件
2.0/2.0.1/2.1
● 完全重新设计的Android Market
● 手势支持
● 支持CDMA网络
● 文字转语音系统(TXT-2-speech)
● 快速搜索框
● 全新的拍照界面
● 应用程序耗电查看
● 支持VPN
● 支持更多的屏幕分辨率
● 支持OpenCore2媒体引擎
● 新增面向视觉或听觉困难人的易用性插件
2.0/2.0.1/2.1
(Eclair)
基于Linux Kernel 2.6.29 2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下:[12]
● 优化硬件速度
● "Car Home"程序
● 支持更多的屏幕分辨率
● 重整界面
● 新的浏览器的用户界面和支持HTML5
● 新的联系人名单
● 更好的白/黑背景比率
● 改进Google Maps 3.1.2
● 支持Microsoft Exchange
● 支持内置相机闪光灯
● 数字变焦
基于Linux Kernel 2.6.29 2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下:[12]
● 优化硬件速度
● "Car Home"程序
● 支持更多的屏幕分辨率
● 重整界面
● 新的浏览器的用户界面和支持HTML5
● 新的联系人名单
● 更好的白/黑背景比率
● 改进Google Maps 3.1.2
● 支持Microsoft Exchange
● 支持内置相机闪光灯
● 数字变焦
● 改进的虚拟键盘
● 蓝牙2.1
Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。
下一个版本的Android将会命名为Froyo(冻酸奶,基于Linux Kernel 2.6.32)。Froyo 之后的版本的Android将会命名为Gingerbread(姜饼,基于Linux Kernel 2.6.33/34)。
● 蓝牙2.1
Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。
下一个版本的Android将会命名为Froyo(冻酸奶,基于Linux Kernel 2.6.32)。Froyo 之后的版本的Android将会命名为Gingerbread(姜饼,基于Linux Kernel 2.6.33/34)。
应用程序
以Java为编程语言,使Android从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责建立视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL链接,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Ac
tivity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。
中间件
网络上xml是什么意思操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。
Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAut
中间件
网络上xml是什么意思操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。
Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAut
hor、Codec、 PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为内核图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类 (Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“寄存器型态”(Register Based)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个instance, 每个Android应用程序都用一个自属的Dalvik虚拟机来运
Android 使用skia 为内核图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类 (Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“寄存器型态”(Register Based)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个instance, 每个Android应用程序都用一个自属的Dalvik虚拟机来运
行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java Bytecode,而是运行一种称为.dex格式的文件。
硬件抽像层
Android HAL 是为了将 Android framework 与 Linux kernel 隔开,降低对 Linux kernel 的依赖,以达成kernel independent。Android HAL 目前以 HAL stub 的形式存在,本身是.so 档,是一种 proxy 的概念。Android runtime 向 HAL 取得 stub 的 operations,再以 callback 的方式操作函数。
操作系统
Android 是运行于 Linux kernel之上,但并不是GNU Linux。因为在一般GNU/Linux 里的功能,Android 大都没有支持,包括Cairo, X11, Alsa, FFmpeg, GTK, Pango, Glibc等都移除掉了。Android又以bionic 取代Glibc, 以Skia 取代Cairo, 再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除关于GNU Copyleft 的限制,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。
硬件抽像层
Android HAL 是为了将 Android framework 与 Linux kernel 隔开,降低对 Linux kernel 的依赖,以达成kernel independent。Android HAL 目前以 HAL stub 的形式存在,本身是.so 档,是一种 proxy 的概念。Android runtime 向 HAL 取得 stub 的 operations,再以 callback 的方式操作函数。
操作系统
Android 是运行于 Linux kernel之上,但并不是GNU Linux。因为在一般GNU/Linux 里的功能,Android 大都没有支持,包括Cairo, X11, Alsa, FFmpeg, GTK, Pango, Glibc等都移除掉了。Android又以bionic 取代Glibc, 以Skia 取代Cairo, 再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除关于GNU Copyleft 的限制,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。
目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。
蓝部分:应用程序。 绿及黄部分:中间件。 红部分:操作系统内核
Android 手机,百科全书第二章: 新手入门
通用问题1.Android手机的基本操作
首页画面您可以从首页画面开始使用您电话上的各种应用程式。您还可以根据偏好来自订首页画面,在画面上显示应用程式图示、捷径、资料夹和小工具。
通知
首页画面您可以从首页画面开始使用您电话上的各种应用程式。您还可以根据偏好来自订首页画面,在画面上显示应用程式图示、捷径、资料夹和小工具。
通知
提示在任何应用程式中按下首页即可返回首页画面。
延伸的首页画面首页画面会延伸到萤幕宽度之外,以提供更多的空间,让您可以新增图示、小工具等。按下首页,然后用手指在画面上垂直快速滑动即可跳到延伸首页画面的左边或右边。
提示在延伸的首页画面上按下首页也可返回首页主画面
自定义首页画面新增首页画面项目1.按下首页,然后点住画面上的空白区域。2.出现新增至首页选项选单时,选取您想要新增至首页画面的项目:捷径。可让您新增各种捷径,包括已加入书签的网页、好友连络人、Gmail 标签或音乐播放清单等。提示若要将应用程式标签中的应用程式捷径快速新增至首页画面,请点住应用程式图示。手机震动时,在首页画面的空白区域中放开图示。
小工具。可让您新增时钟、音乐播放器、相框、 Google 搜寻列或日历,以提醒您即将到
来的约会。
资料夹。可让您新增资料夹,在资料夹中放入首页画面的项目、所有连络人的捷径、已输入电话号码的连络人或加星号的连络人。您可以新增捷径至所有的连络人、已输入电话号码的连络人或加星号的连络人。捷径来源的任何变更也会自动更新至连络人的详细资料。如需如何建立资料夹的详细资讯,请参阅本章的「建立资料夹并新增项目」。
桌面。变更首页画面的桌布。如需关于自定义桌面的详细资讯
Android手机通用问题
右上角的小图标都是什么意思?
答:
资料夹。可让您新增资料夹,在资料夹中放入首页画面的项目、所有连络人的捷径、已输入电话号码的连络人或加星号的连络人。您可以新增捷径至所有的连络人、已输入电话号码的连络人或加星号的连络人。捷径来源的任何变更也会自动更新至连络人的详细资料。如需如何建立资料夹的详细资讯,请参阅本章的「建立资料夹并新增项目」。
桌面。变更首页画面的桌布。如需关于自定义桌面的详细资讯
Android手机通用问题
右上角的小图标都是什么意思?
答:
通知面板
通知图示会在收到新讯息、设定了行事历行程、闹钟,以及启动来电转接等持续性设定时显示,同时也会显示目前的通话状态。您可以开启通知面板,以开启讯息、提醒或行程通知,以及检视电信业者的名称。
开启通知面板
当状态列出现新的通知图示时,请点住状态列,然后向下滑动手指,即可开启通知面板。
通知图示会在收到新讯息、设定了行事历行程、闹钟,以及启动来电转接等持续性设定时显示,同时也会显示目前的通话状态。您可以开启通知面板,以开启讯息、提醒或行程通知,以及检视电信业者的名称。
开启通知面板
当状态列出现新的通知图示时,请点住状态列,然后向下滑动手指,即可开启通知面板。
如果出现多个通知,只要向下卷动画面就可以检视更多的通知。提示您也可以按下选单,然后触碰通知,以此方式来开启首页画面上的通知面板。
关闭通知面板
点住通知面板底部的控制列,然后用手指在画面上向上滑动,或按下返回
扩展回答:
在About phone里有非常详细的手机各种版本状态的信息以下是各个栏目的功能介绍:
Status:包含有手机的基本信息,包括IMEI码、手机序列号、剩余电量等等。
Legal information:HTC、系统开源及谷歌的一些基本介绍。
Contributors:G1的一些赞助商、制造商、制作人员的一些介绍。
Model number:这里显示的是手机的型号。例如T-Mobile G1
Firmware version:Android系统的固件版本。在未来的固件升级中会经常遇到的。
Baseband version:G1的Baseband版本,和固件有关系。每次固件的升级,Baseband都会不同,这会在未来的固件升级中体现出啦的。
Kernel version:是Android内核版本。
Build number:这是谷歌内部版本控制信息。
如何查看IMEI?
答:在拨号处输入*#06#,即会出现IMEI码扩展回答:
在About phone里有非常详细的手机各种版本状态的信息,其中Status里的各个栏目的功能
在About phone里有非常详细的手机各种版本状态的信息以下是各个栏目的功能介绍:
Status:包含有手机的基本信息,包括IMEI码、手机序列号、剩余电量等等。
Legal information:HTC、系统开源及谷歌的一些基本介绍。
Contributors:G1的一些赞助商、制造商、制作人员的一些介绍。
Model number:这里显示的是手机的型号。例如T-Mobile G1
Firmware version:Android系统的固件版本。在未来的固件升级中会经常遇到的。
Baseband version:G1的Baseband版本,和固件有关系。每次固件的升级,Baseband都会不同,这会在未来的固件升级中体现出啦的。
Kernel version:是Android内核版本。
Build number:这是谷歌内部版本控制信息。
如何查看IMEI?
答:在拨号处输入*#06#,即会出现IMEI码扩展回答:
在About phone里有非常详细的手机各种版本状态的信息,其中Status里的各个栏目的功能
介绍如下:
Battery status:电池充电/未充电状态
Battery level:电池剩余电量
Phone number:手机序列号
Network:所处的移动网络
Signal strength:信号度
Network type:网络制式
Service state:所在服务区
Roaming:漫游/未漫游
Data access:共访问的数据大小
IMEI:IMEI码
IMEI SV:IMEI码的版本
IMSI:国际移动用户识别码
Mac address:手机无线Wi-Fi网络的Mac地址。
Bluetooth address:蓝牙地址
Battery status:电池充电/未充电状态
Battery level:电池剩余电量
Phone number:手机序列号
Network:所处的移动网络
Signal strength:信号度
Network type:网络制式
Service state:所在服务区
Roaming:漫游/未漫游
Data access:共访问的数据大小
IMEI:IMEI码
IMEI SV:IMEI码的版本
IMSI:国际移动用户识别码
Mac address:手机无线Wi-Fi网络的Mac地址。
Bluetooth address:蓝牙地址
Up time:正常运行时间
Awake Time:手机唤醒时间
Awake Time:手机唤醒时间
什么是apk
APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
扩展阅读
APK 文件的结构是什么?
一个APK文件结构为:
META-INF\ Jar文件中常可以看到
res\ 存放资源文件的目录
l 程序全局配置文件
APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
扩展阅读
APK 文件的结构是什么?
一个APK文件结构为:
META-INF\ Jar文件中常可以看到
res\ 存放资源文件的目录
l 程序全局配置文件
classes.dex Dalvik字节码
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的l文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
META-INF目录
resources.arsc 编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的l文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
META-INF目录
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个api包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。而在OPhone平台上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk 包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全。
classes.dex文件
classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,到要查看的dex文件,执行dexdump xxx.dex。
classes.dex文件
classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,到要查看的dex文件,执行dexdump xxx.dex。
玩转 Android 手机,百科全书第三章: 中级入门
系统设置
如何清空Market的搜索历史记录
Windows平台下ADB的安装与使用
cmwap接入点上www,wap,Gtalk,QQ
Android 分享 - 系統保養心得
GPHONE做猫拖笔记本上网
Android系统文件夹结构解析
系统设置
如何清空Market的搜索历史记录
Windows平台下ADB的安装与使用
cmwap接入点上www,wap,Gtalk,QQ
Android 分享 - 系統保養心得
GPHONE做猫拖笔记本上网
Android系统文件夹结构解析
软件评测教程
几种可以收Exchange Server信箱的比较
[Heatherm 原创] 用大杀器 Root Explorer 弄出加密的 apk 方法
铃声音量增益软件+使用教程!(不会爆音)
软件集合帖
【Androidin】 论坛原创软件合集
【精品软件集合贴】应用软件类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论