欢迎来到天天文库
浏览记录
ID:43278856
大小:597.01 KB
页数:14页
时间:2019-09-30
《玩转Android手机》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
什么是Android? Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:OpenHandsetAlliance)(OpenHandsetAlliance)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌手机电话的NexusOne。 Android历史 开发 Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。 2008PatrickBrady于GoogleI/O演讲“Anatomy&PhysiologyofanAndroid”,并提出的AndroidHAL架构图。HAL以.so档的形式存在,可以把Androidframework与Linuxkernel隔开。 公布前的传闻 Google的东南亚销售与营运常务董事RichardKimber曾说:"Atthispointintime,weareveryfocusedonthesoftware,notthephone.(目前我们完全专注于软件而非电话)"。可是Google并未正式否认正在制作电话的传闻,Google可能与一家硬件生产商合作创作GooglePhone。 传言指出GooglePhone将提供完全免费的服务,Google会通过广告获取收益。GooglePhone的发布日期预期为2009年。 LG宣布将于2007年第二季开始在其手提电话产品中安装Google的软件。Android版本升级 Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式奶油夹心甜点)和Flan(水果馅饼)。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。 【第一台上市的Android手机】 对手机行业的影响 已经与[SonyEricsson]、[HTC]、NTTDoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。 发布 1.5(Cupcake) 基于LinuxKernel2.6.272009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下: ●拍摄/回放视频,并支持上传到youtube ●支持立体声蓝牙耳机,同时改善自动配对性能 ●最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索 ●GPS性能大大提高 ●屏幕虚拟键盘 ●主屏幕增加音乐播放器和相框widgets ●应用程序自动随着手机旋转 ●短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了 ●相机启动速度加快,拍摄图片可以直接上传到picasa ●来电照片显示 1.6(Donut) 基于LinuxKernel2.6.292009年9月15日,1.6(Donut)版本SDK发布。主要的更新如下: ●完全重新设计的AndroidMarket ●手势支持 ●支持CDMA网络 ●文字转语音系统(TXT-2-speech) ●快速搜索框 ●全新的拍照界面 ●应用程序耗电查看 ●支持VPN ●支持更多的屏幕分辨率 ●支持OpenCore2媒体引擎 ●新增面向视觉或听觉困难人群的易用性插件 2.0/2.0.1/2.1(Eclair) 基于LinuxKernel2.6.292009年10月26日,2.0(Eclair)版本SDK发布。主要的更新如下: ●优化硬件速度 ●"CarHome"程序 ●支持更多的屏幕分辨率 ●重整界面 ●新的浏览器的用户界面和支持HTML5 ●新的联系人名单 ●更好的白色/黑色背景比率 ●改进GoogleMaps3.1.2 ●支持MicrosoftExchange ●支持内置相机闪光灯 ●数字变焦 ●改进的虚拟键盘 ●蓝牙2.1 Android的代号序列会按甜点名字中首个英文字母(C、D、E、F)的排列顺序。 下一个版本的Android将会命名为Froyo(冻酸奶,基于LinuxKernel2.6.32)。Froyo之后的版本的Android将会命名为Gingerbread(姜饼,基于LinuxKernel2.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类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 中间件 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(VirtualMachine)。 Bionic是Android改良libc的版本。Android同时包含了Webkit,所谓的Webkit就是AppleSafari浏览器背后的引擎。Surfaceflinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的BionicLibc。 Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideoMultimediaFramework(PVMF)、OperatingSystemCompatibilityLibrary(OSCL)、Common、OpenMAX。 Android使用skia为内核图形引擎,搭配OpenGL/ES。skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,目前Skia也是GoogleChrome的图形引擎。 Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtualMachine)。Dalvik虚拟机是一种“寄存器型态”(RegisterBased)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。 Dalvik虚拟机可以有多个instance,每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行JavaBytecode,而是运行一种称为.dex格式的文件。 硬件抽像层 AndroidHAL是为了将Androidframework与Linuxkernel隔开,降低对Linuxkernel的依赖,以达成kernelindependent。AndroidHAL目前以HALstub的形式存在,本身是.so档,是一种proxy的概念。Androidruntime向HAL取得stub的operations,再以callback的方式操作函数。 操作系统 Android是运行于Linuxkernel之上,但并不是GNULinux。因为在一般GNU/Linux里的功能,Android大都没有支持,包括Cairo,X11,Alsa,FFmpeg,GTK,Pango,Glibc等都移除掉了。Android又以bionic取代Glibc,以Skia取代Cairo,再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除关于GNUCopyleft的限制,例如Android将驱动程序移到userspace,使得Linuxdriver与Linuxkernel彻底分开。 目前Android的Linuxkernel控制包括安全(Security),存储器管理(MemoryManagemeat),程序管理(ProcessManagement),网络堆栈(NetworkStack),驱动程序模型(DriverModel)等。Android手机的基本操作 首页画面 从首页画面开始使用您电话上的各种应用程式。您还可以根据偏好来自订首页画面,在画面上显示应用程式图示、捷径、资料夹和小工具。 提示在任何应用程式中按下首页即可返回首页画面。 延伸的首页画面 首页画面会延伸到萤幕宽度之外,以提供更多的空间,让您可以新增图示、小工具等。按下首页,然后用手指在画面上垂直快速滑动即可跳到延伸首页画面的左边或右边。 提示在延伸的首页画面上按下首页也可返回首页主画面 自定义首页画面 新增首页画面项目1.按下首页,然后点住画面上的空白区域。2.出现新增至首页选项选单时,选取您想要新增至首页画面的项目:捷径。可让您新增各种捷径,包括已加入书签的网页、好友连络人、Gmail标签或音乐播放清单等。提示若要将应用程式标签中的应用程式捷径快速新增至首页画面,请点住应用程式图示。手机震动时,在首页画面的空白区域中放开图示。 小工具 可让您新增时钟、音乐播放器、相框、Google搜寻列或日历,以提醒您即将到来的约会。 资料夹。可让您新增资料夹,在资料夹中放入首页画面的项目、所有连络人的捷径、已输入电话号码的连络人或加星号的连络人。您可以新增捷径至所有的连络人、已输入电话号码的连络人或加星号的连络人。捷径来源的任何变更也会自动更新至连络人的详细资料。如需如何建立资料夹的详细资讯,请参阅本章的「建立资料夹并新增项目」。 桌面 变更首页画面的桌布。右上角的小图标意义全解读 通知面板 通知图示会在收到新讯息、设定了行事历行程、闹钟,以及启动来电转接等持续性设定时显示,同时也会显示目前的通话状态。您可以开启通知面板,以开启讯息、提醒或行程通知,以及检视电信业者的名称。 开启通知面板 当状态列出现新的通知图示时,请点住状态列,然后向下滑动手指,即可开启通知面板。 如果出现多个通知,只要向下卷动画面就可以检视更多的通知。提示您也可以按下选单,然后触碰通知,以此方式来开启首页画面上的通知面板。 关闭通知面板 点住通知面板底部的控制列,然后用手指在画面上向上滑动,或按下返回。 什么是APK? APK是AndroidPackage的缩写,即Android安装包。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或 Android手机中执行即可安装。 扩展阅读:APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。 APK文件的结构是什么? 一个APK文件结构为: META-INFJar文件中常可以看到 res存放资源文件的目录 AndroidManifest.xml程序全局配置文件 classes.dexDalvik字节码 resources.arsc编译后的二进制资源文件 总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和WindowsMobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的WindowsGadgets或者说WPF也采用了这种构架方式。 在Android平台中dalvikvm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,而在androidrom中系统的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文件用adbpush上传的模拟器中,然后通过adbshell登录,找到要查看的dex文件,执行dexdumpxxx.dex。 什么是widget? 答:点击阅读 如何删除桌面快捷/应用? 答:点击阅读 什么是Root? 答:点击阅读 什么是WIPE? 答:点击阅读 什么是SPL? 答:点击阅读 如何安装软件? 答:点击阅读 如何删除软件? 答:点击阅读 如何向SD卡拷文件?< 答:点击阅读 如何管理通讯录? 答:点击阅读 如何设置彩信以及GPRS上网? 答:点击阅读 如何快速开关APN? 答:点击阅读 如何看自己手机系统版本? 答:点击阅读 扩展回答: 在Aboutphone里有非常详细的手机各种版本状态的信息以下是各个栏目的功能介绍: Status:包含有手机的基本信息,包括IMEI码、手机序列号、剩余电量等等。 Legalinformation:HTC、系统开源及谷歌的一些基本介绍。 Contributors:G1的一些赞助商、制造商、制作人员的一些介绍。 Modelnumber:这里显示的是手机的型号。例如T-MobileG1 Firmwareversion:Android系统的固件版本。在未来的固件升级中会经常遇到的。 Basebandversion:G1的Baseband版本,和固件有关系。每次固件的升级,Baseband都会不同,这会在未来的固件升级中体现出啦的。 Kernelversion:是Android内核版本。 Buildnumber:这是谷歌内部版本控制信息。 如何查看IMEI? 答:在拨号处输入*#06#,即会出现IMEI码扩展回答: 在Aboutphone里有非常详细的手机各种版本状态的信息,其中Status里的各个栏目的功能介绍如下: Batterystatus:电池充电/未充电状态 Batterylevel:电池剩余电量 Phonenumber:手机序列号 Network:所处的移动网络 Signalstrength:信号度 Networktype:网络制式 Servicestate:所在服务区 Roaming:漫游/未漫游 Dataaccess:共访问的数据大小 IMEI:IMEI码 IMEISV:IMEI码的版本 IMSI:国际移动用户识别码 Macaddress:手机无线Wi-Fi网络的Mac地址。 Bluetoothaddress:蓝牙地址 Uptime:正常运行时间 AwakeTime:手机唤醒时间
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处