深入解析Android虚拟机(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-15 23:13:37

点击下载

作者:张子言

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深入解析Android虚拟机

深入解析Android虚拟机试读:

前言

进入21世纪以来,整个社会已经逐渐变得陌生了!生活和工作的快节奏令我们目不暇接,各种各样的信息充斥着我们的视野、撞击着我们的思维。追忆过去,Windows操作系统的诞生成就了微软公司的霸主地位,也造就了PC时代的繁荣。然而,以Android和iPhone手机为代表的智能移动设备的发明却敲响了PC时代的丧钟!移动互联网时代已经来临,谁会成为这些移动设备上的主宰?毫无疑问,它就是Android——PC时代的Windows!

3G的璀璨绚丽

随着3G的到来,无线带宽越来越高,使更多内容丰富的应用程序布置在手机上成为可能,如视频通话、视频点播、移动互联网冲浪、在线看书/听歌、内容分享等。为了承载这些数据应用及快速部署,手机的功能将会越来越智能,越来越开放,为了实现这些需求,必须有一个良好的开发平台来支持,在此由Google公司发起的OHA联盟走在了业界的前列,2007年11月推出了开放的Android平台,任何公司及个人都可以免费获取到源代码及开发SDK。由于其开放性和优异性,Android平台得到了业界广泛的支持,其中包括各大手机厂商和著名的移动运营商等。继2008年9月第一款基于Android平台的手机G1发布后,预计三星、摩托罗拉、索爱、LG、华为等公司都将推出Gflg~Android平台的手机,中国移动也将联合各手机厂商共同推出基于Android平台的OPhone。按目前的发展态势,我们有理由相信,Android平台能够在短时间内跻身智能手机开发平台的前列。

自从公元2009年3G牌照在国内发放后,3G、Android、iPhone、Google、苹果、手机软件、移动开发等词越来越充斥于耳。随着3G网络的大规模建设和智能手机的迅速普及,移动互联网时代已经微笑着迎面而来。

作为以创新的搜索引擎技术而一跃成为互联网巨头的Google公司,无线搜索成为其进军移动互联网的一块基石。Android操作系统是Google公司最具杀伤力的武器之一。苹果公司以其天才的创新,使得iPhone在全球迅速拥有了数百万忠实“粉丝”,而Android作为第一个完整、开放、免费的手机平台,使开发者在为其开发程序时拥有更大的自由。与Windows Mobile、Symbian等厂商不同的是,Android操作系统免费向开发人员提供,这样可节省近三成成本,得到了众多厂商与开发者的拥护。自从进入2011年后,Android就一直是市场占有率最高的智能手机系统。并且Android的成功也造就了使用Android系统的手机制造商,现在三星借助Android这个东风,已经成为世界上发货量最大的手机制造商。

巨大的优势

从技术角度而言,Android与iPhone相似,采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查收电子邮件、搜索网址和观看视频节目等。Android手机比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入了全部Web应用的开发平台。Android的版本包括Android 1.1、Android 1.5、Android 1.6、Android 2.0……当前的最新版本是Android 4.2。随着版本的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的GoogleMap到现在的导航系统,从基本的网页浏览到现在的HTML 5,这都说明Android已经逐渐稳定,而且功能越来越强大。此外,Android平台不仅支持Java、C、C++等主流的编程语言,还支持Ruby、Python等脚本语言,甚至Google公司专为Android的应用开发推出了Simple语言,这使得Android有着非常广泛的开发群体。

本书的内容

本书循序渐进地详细讲解了Android虚拟机技术的基本知识,内容新颖、知识全面、讲解详细,全书共分13章。Android虚拟机技术博大精深,需要程序员具备极高的水准和开发经验。笔者从事Android开发也是短短数载,也不可能完全掌握Android优化技术。本书尽可能地将Android虚拟机技术的核心内容展现给读者,本书主要讲解了如下所示的核心内容。● Android系统框架结构。● Java虚拟机和Dalvik虚拟机原理。● 程序编译和调试。● Dalvik的运作流程和核心机制。● DEX优化技术。● 安全管理的基本知识。● Android虚拟机生命周期管理。● 虚拟机内存分配策略。● 虚拟机的垃圾收集机制。● 线程管理机制和框架。● JNI层的原理和核心理念。● JIT编译的基本过程。

科学的学习方法

不要认为学习Android技术是一件很困难的事情,不断寻找规律,学习新知识和新技能,积累经验,这几乎是每一个电脑高手的成长之路。中国有句古话:“授人以鱼,不如授人以渔”,说的是传授给人既有知识,不如传授给人学习知识的方法。通过本书,我们将告诉读者学习的方法,并介绍一条比较清晰的学习之路。(1)积极的心态

无论是知识还是技能,智者之所以能够更好更快地掌握这些知识和技能,在很大程度上得益于良好的学习方法。人们常说:兴趣是最好的老师,压力是前进的动力,要想获得一个积极的心态,最好能对学习对象保持浓厚的兴趣。如果暂时提不起兴趣,那么就重视来自工作或生活的压力,把它们转为化为学习的动力。(2)注重实践

读者在学习本书的过程中,建议学完理论后,进行实际操作。首先学习书中的理论,再动手调试本书中的实例,然后用模拟器运行书中的例子,只有这样才能做到印象深刻,才能真正理解Android网络的基本知识。这样当在实际应用中遇到其他类似问题时,才能做到熟能生巧、触类旁通。(3)善用资源,学以致用

对于计算机网络技术,除了少部分专业人士外,大部分人学习网络的目的是为了应用,通过网络解决工作中的问题并提高工作效率。“解决问题”常常是促使人学习的一大动机,带着问题学习,不但进步快,而且很容易对网络产生更大的兴趣,从而获得持续的进步。

本书特色

本书的内容相当丰富,内容覆盖全面,满足了Android虚拟机技术人员成长道路上的方方面面。我们的目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读,以完善本人的知识和技能结构。在内容的编写上,本书具有以下特色。(1)结构合理

从用户的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,并附有相应的总结和练习,具有很强的知识性和实用性,反映了当前Android虚拟机技术的发展和应用水平。同时全书精心筛选的最具代表性、读者最关心的知识点,几乎包括Android虚拟机技术的所有方面。(2)易学易懂

本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行有针对性的学习。(3)实用性强

本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,本书将Android虚拟机技术的理论融合到实际的操作环境中,使用户掌握相关的操作技能的同时,还能学习到相应的开发知识。

本书的读者对象

本书在内容安排上由浅入深,在写作上运用剥洋葱式的分解,非常适合于入门Android开发技术的初学者,同时也适合于具有一定Android开发基础,想对Android开发技术进一步了解和掌握的中级学者。如果你是以下类型的学者,此书会带领你迅速进入Android的开发领域。● 有一定Android开发经验的读者。● 从事Android开发的研究人员和工作人员。● 有一定Android开发基础,想快速学会Android高级技术的读者。● 有一定Android开发开发基础,需要加深对Android技术核心进一

步了解和掌握的程序员。● 高等院校相关专业的学生,或需要编写论文的学生。● 企业和公司在职人员、需要提高学习或工作需要的程序员。● 从事Android移动网络开发等相关工作的技术人员。

在本书的写作过程中得到了清华大学出版社工作人员的大力支持,在此特意感谢各位编辑老师们的指点和付出的汗水。另外,笔者毕竟水平有限,书中纰漏和不尽如人意之处在所难免,诚请读者提出意见或建议,以便修订并使之更臻完善。

编者第1章Android系统介绍

Android是2007年才推出的一款智能手机平台,它是建立在Linux的开源基础之上,能够迅速建立手机软件的解决方案。虽然Android的外形比较简单,但是其功能十分强大,当前已经成了一个新兴的热点,并且成了市场占有率排名第一的智能手机操作系统。本章将简单介绍Android系统的相关知识,让读者了解Android的发展之路。1.1 Android是一款智能手机

其实在Android系统诞生之前,智能手机就已经大大丰富了人们的生活,受到了广大手机用户的追捧。各大手机厂商在利益的驱动之下,纷纷建立了自己的智能手机操作系统来抢夺市场份额。Android系统就是在这个风起云涌的历史背景下诞生的。

1.1.1 什么是智能手机

智能手机是指具有像个人电脑那样强大的功能,拥有独立的操作系统,用户可以自行安装游戏等第三方服务商提供的程序,并且可以通过移动通信网络来接入无线网络。在Android系统诞生之前,市面上已经有了多款智能手机产品,例如,Symbian和微软公司的Windows Mobile系列等。

一般来说,智能手机必须具备下面的功能标准。(1)操作系统必须支持新应用的安装。(2)高速处理芯片。(3)支持播放式的手机电视。(4)大存储芯片和存储扩展能力。(5)支持GPS导航。

根据上述标准,手机联盟公布了如下智能手机的主要特点。(1)具备普通手机的所有功能,例如,可以进行正常的通话和收发短信等基本的手机应用。(2)是一个开放性的操作系统,在系统上可以安装更多的应用程序,从而实现功能的无限扩充。(3)具备上网功能。(4)具备PDA的功能,能够实现个人信息管理,日程记事,任务安排,多媒体应用,浏览网页。(5)可以根据个人需要扩展机器的功能。(6)扩展性能强,并且可以支持第三方软件。

1.1.2 当前主流的智能手机系统

在当今市面中最主流的智能手机系统当属微软、塞班、PDA、黑莓、苹果和本书的主角Android。

1. 微软的Windows Mobile

Windows Mobile是微软公司的一款杰出产品,Windows Mobile将用户熟悉的Windows桌面扩展到了个人设备中。使用Windows Mobile操作系统的设备主要有PPC手机、PDA、随身音乐播放器等。Windows Mobile操作系统有三种,分别是Windows Mobile Standard、Windows Mobile Professional、Windows Mobile Classic。

2. 塞班系统Symbian

塞班系统是由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通信设备商共同出资组建的一个合资公司。该公司专门研发手机操作系统,现已被诺基亚全额收购。Symbian有着良好的界面,采用内核与界面分离技术,对硬件的要求比较低,支持C++,Visual Basic和J2ME。目前根据人机界面的不同,Symbian的UI(User Interface用户界面)平台分为Series60、Series80、Series90、UIQ等。其中Series60主要是用在数字键盘的手机,Series80是为完整键盘设计的,Series90则是为触控笔方式而设计的。

注意:(1)2010年9月,诺基亚公司宣布将从2011年4月起从Symbian基金会(Symbian Foundation)手中收回Symbian操作系统控制权。由此看来,诺基亚公司在2008年全资收购塞班公司之后希望继续扩大塞班影响力的愿望并没有实现。(2)在苹果和Android的强大市场攻势下,诺基亚公司在2011年2月11日宣布与微软公司达成广泛战略合作关系,并将Windows Phone作为其主要的智能手机操作系统。这家芬兰手机巨头试图通过结盟扭转颓势。截止本书成稿时,诺基亚和微软公司联合推出了最新版本Windows Phone 8。(3)2011年8月15日,谷歌和摩托罗拉移动公司共同宣布,谷歌公司将以每股40.00美元现金收购摩托罗拉移动公司,总额约125亿美元,相比摩托罗拉移动公司股份的收盘价溢价了63%,双方董事会都已全票通过该交易。谷歌公司的CEO拉里·佩奇表示,摩托罗拉移动公司将完全专注于Android系统,收购摩托罗拉移动公司之后,将增强整个Android生态系统。佩奇同时表示,Android将继续开源,收购的一个目的是为了获得专利。

3. Palm

Palm是流行的个人数字助理(PDA,又称掌上电脑)的传统名字。从广义上讲,Palm是PDA的一种,是Palm公司发明的。而从狭义上讲,Palm是Palm公司生产的PDA产品,区别于SONY公司的Clie和Handspring公司的Visor/Treo等其他运行Palm操作系统的PDA产品。其显著特点之一是写入装置输入数据的方法,用户能够点击显示器上的图标选择输入的项目。2009年2月11日,Palm公司CEO Ed Colligan宣布以后将专注于WebOS和Windows Mobile的智能设备,而将不会再有基于“Palm OS”的智能设备推出,除了Palm Centro会在以后和其他运营商合作时继续推出。

4. 黑莓BlackBerry

BlackBerry是加拿大RIM公司推出的一种移动电子邮件系统终端,其特色是支持推动式电子邮件、手提电话、文字短信、互联网传真、网页浏览及其他无线资讯服务,它的最大优势是收发邮件。正因为这一优势,所以特别收到了商务用户的青睐。

5. iOS

iOS作为苹果移动设备iPhone和iPad的操作系统,在App Store的推动下,成为世界上引领潮流的操作系统之一。原本这个系统名为“iPhone OS”,直到2010年6月7日,在WWDC大会上宣布改名为“iOS”。iOS的用户界面的概念基础上是能够使用多点触控直接操作。控制方法包括滑动、轻触开关及按键。与系统交互包括滑动(Swiping)、轻按(Tapping)、挤压(Pinching,通常用于缩小)及反向挤压(Reverse Pinching or unpinching通常用于放大)。此外通过其自带的加速器,可以令其旋转设备改变其y轴以令屏幕改变方向,这样的设计令iPhone更便于使用。

从最初的iPhone OS,演变至最新的iOS系统,iOS成为苹果新的移动设备操作系统,横跨iPod Touch、iPad、iPhone,成为苹果最强大的操作系统。甚至新一代的Mac OS X Lion也借鉴了iOS系统的一些设计,可以说iOS是苹果的又一个成功的操作系统,能给用户带来极佳的使用体验。

6. Android

Android是我们本书的主角,是谷歌公司于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。1.2 Android的巨大优势

从2007年11月5日诞生起,到2011年7月,安卓系统在智能手机的占有率高达43%,位居智能手机系统占有率排行榜的第一位。并且随着各大厂商新产品的推出,必然会继续巩固这一地位。为什么安卓能在这么多的智能系统中脱颖而出,成为市场占有率第一的手机系统呢?要想分析其原因,需要先了解它的巨大优势,分析究竟是哪些优点吸引了厂商和消费者的青睐。(1)第一个优势——系出名门

Android是出身于Linux家族,是一款号称开源的手机操作系统。当Android“一炮走红”之后,各大手机联盟纷纷加入,并且都推出了各自系列产品。这个联盟由包括中国移动、三星、摩托罗拉、高通、宏达电和T-Mobile等在内的30多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。(2)第二个优势——开发团队的支持

Android的研发队伍阵容豪华,包括摩托罗拉、Google、HTC(宏达电子)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动公司在内的34家企业,他们都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。(3)第三个优势——诱人的奖励机制

谷歌公司为了提高程序员的开发积极性,不但为他们提供了一流硬件的设置和一流的软件服务,而且还采取了振奋人心的奖励机制,定期召开比赛,创意和应用夺魁者将会得到重奖。(4)第四个优势——开源

开源意味着对开发人员和手机厂商来说,Android是完全无偿免费使用的。因为源代码公开的原因,所以吸引了全世界各地无数程序员的热情。于是很多手机厂商都纷纷采用Android作为自己产品的系统,甚至包括很多山寨厂商。而对于开发人员来说,众多厂商的采用就意味着人才需求大,所以纷纷加入到Android的开发大军中来。1.3 在电脑上启动Android虚拟机

要想在电脑中启动Android虚拟机,需要做很多事情。本节将详细介绍在Windows环境下搭建启动Android虚拟机的基本过程。

1.3.1 安装Android SDK

在Android虚拟机前,一定需要先确定基于Android应用软件所需要的开发环境,具体要求如表1-1所示。表1-1 开发系统的需求参数

Android开发工具是由多个开发包组成的,其中最主要的开发包如下。● JDK:可以到网址http://www.oracle.com/technetwork/java/javase/

downloads/index.html下载。● Eclipse:可以到网址http://www.eclipse.org/downloads/下载

Eclipse IDE for Java Developers。● Android SDK:可以到网址http://developer.android.com下载。● 下载对应的开发插件。

1.3.2 安装JDK、Eclipse、Android SDK

本书所介绍的Android的安装是以Windows 7为平台,安装的软件为JDK 1.6、Eclipse 3.3、ADT1.5、Android SDK 4.0。下面具体介绍各个软件的安装步骤,并且在配套的视频中有更详细的介绍。

1. 安装JDK

安装Eclipse的开发环境需要JRE的支持,在Windows上安装JRE/JDK非常简单。(1)在Oracle公司的官方网站下载,网址为http://www.oracle.com/technetwork/java/javase/downloads/index.html,如图1-1所示。图1-1 Oracle官方下载页面(2)在图1-1中可以看到JDK有很多版本,运行Eclipse时虽然只需要JRE就可以了,但是在开发Android应用程序的时候,是需要完整的JDK(JDK已经包含了JRE),且要求其版本在1.5以上,这里选择Java SE(JDK)6,其下载页面如图1-2所示。图1-2 JDK的下载页面(3)在图1-2中找到JDK 6 Update 22,单击其右侧的Download按钮后弹出填写登录信息界面,在此输入你的账号信息,如果没有账号可以免费注册一个,然后单击Continue按钮,如图1-3所示。图1-3 输入账号信息(4)来到选择操作系统和语言界面,在此首先选择Windows,然后单击Download按钮,如图1-4所示。图1-4 选择Windows

经过上述操作后,开始下载安装文件jdk-6u22-windows-i586.exe。(5)下载完成后双击jdk-6u22-windows-i586.exe开始进行安装,将弹出安装向导对话框,在此单击【下一步】按钮,如图1-5所示。图1-5 安装向导对话框(6)弹出【自定义安装】界面,在此选择文件的安装路径,如图1-6所示。图1-6 【自定义安装】界面(7)单击【下一步】按钮,开始进行安装,如图1-7所示。图1-7 开始安装(8)完成后弹出【目标文件夹】界面,在此选择要安装的位置,如图1-8所示。图1-8 【目标文件夹】界面(9)单击【下一步】按钮后继续开始安装,如图1-9所示。图1-9 继续安装(10)完成后弹出【完成】界面,单击【完成】按钮,完成整个安装过程,如图1-10所示。图1-10 完成安装

注意:

完成安装后可以检测软件的安装是否成功,具体方法是依次单击【开始】︱【运行】,在运行框中输入“cmd”并按Enter键,在打开的CMD窗口中输入“java-version”,如果显示如图1-11所示的提示信息,则说明安装成功。图1-11 CMD窗口

如果没有安装成功,需要将其目录的绝对路径添加到系统的PATH中。具体做法如下。(1)右击【我的电脑】,在弹出的快捷菜单中选择【属性】︱【高级】命令,单击下面的【环境变量】,在下面的【系统变量】处选择【新建】,在【变量名】处输入“JAVA_HOME”,【变量值】中输入刚才的目录,比如C:\Program Files\Java\jdk1.6.0_22,如图1-12所示。图1-12 设置系统变量(2)再次新建一个变量名为classpath,其变量值如下。.;%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar

单击【确定】按钮找到PATH的变量,双击变量值或单击【确定】按钮编辑,在变量值最前面添加如下值。%JAVA_HOME%/bin;

具体如图1-13所示。图1-13 设置系统变量(3)再依次单击【开始】︱【运行】,在“运行”文本框中输入“cmd”并按Enter键,在打开的CMD窗口中输入“java -version”,如果显示如图1-14所示的提示信息,则说明安装成功。图1-14 CMD界面

注意:

上述变量是按照编者本人的安装路径设置的,安装的JDK路径是C:\Program Files\Java\jdk1.6.0_22。

2. 安装Eclipse

在安装好JDK后,就可以接着安装Eclipse了,具体步骤如下。(1)打开Eclipse的官方下载页面http://www.eclipse.org/downloads/,如图1-15所示。图1-15 下载页面(2)在图1-15所示界面中选择Eclipse IDE for Java Developers(92 MB),来到其下载的镜像页面,在此只需选择离用户最近的镜像即可(一般推荐的下载速度就不错),如图1-16所示。图1-16 选择镜像(3)下载完成后,先找到下载的压缩包eclipse-java-galileo-SR1-win32.zip。

注意:

解压Eclipse下载的压缩文件后就可以使用,而无须执行安装程序,不过在使用前一定要先安装JDK。在此假设Eclipse解压后存放的目录为F:\eclipse。(4)进入解压后的目录,此时可以看到一个名为“eclipse.exe”的可执行文件,双击此文件直接运行,Eclipse能自动找到用户先期安装的JDK路径,启动界面如图1-17所示。图1-17 Eclipse的启动界面(5)因为是安装后第一次启动Eclipse,所以会看到选择工作空间的提示,如图1-18所示。图1-18 选择工作空间

此时单击OK按钮,完成Eclipse的安装。

3. 安装Android SDK

完成JDK和Eclipse的安装后,接下来需要下载安装Android的SDK,具体步骤如下。(1)打开Android开发者社区网址http://developer.android.com/,然后转到SDK下载页面(网址是http://developer.android.com/sdk/index.html),如图1-19所示。图1-19 SDK下载页面(2)在此选择用于Windows平台的链接android-sdk_r20-windows.zip,弹出如图1-20所示的对话框。图1-20 Android SDK下载页面

下载后解压压缩文件,假设下载后的文件解压存放在F:\android\目录下,并将其tools目录的绝对路径添加到系统的PATH中,具体操作步骤如下。(1)右击【我的电脑】,在弹出的快捷菜单中选择【属性】|【高级】命令,单击下面的【环境变量】,在下面的【系统变量】处选择【新建】,在【变量名】处输入“SDK_HOME”,【变量值】中输入刚才的目录,比如F:\android-sdk-windows,如图1-21所示。图1-21 设置系统变量(2)找到PATH的变量,双击【编辑】按钮,在变量值最前面加上%SDK_HOME%\tools;,如图1-22所示。图1-22 设置系统变量(3)再依次单击【开始】︱【运行】,在【运行】文本框中输入“cmd”并按Enter键,在打开的CMD窗口中输入一个测试命令,例如android -h,如果显示如图1-23所示的提示信息,则说明安装成功。图1-23 提示信息

4. 安装ADT

Android为Eclipse定制了一个专用插件Android Development Tools(ADT),此插件为用户提供了一个开发Android应用程序的综合环境。ADT扩展了Eclipse的功能,可以让用户快速地建立Android项目,创建应用程序界面。要安装Android Development Tools plug-in,需要首先打开Eclipse IDE,然后进行如下操作。(1)打开Eclipse后,依次单击菜单栏中的Help︱Install New Software...选项,如图1-24所示。图1-24 添加插件(2)在弹出的对话框中单击Add按钮,如图1-25所示。图1-25 添加插件(3)在弹出的Add Site对话框中分别输入名字和地址,名字可以自己命名,例如“123”,但是在Location中必须输入插件的网络地址“http://dl-ssl.google.com/Android/eclipse/”,单击OK按钮,如图1-26所示。图1-26 设置地址(4)单击OK按钮,此时在Install界面将会显示系统中可用的插件,如图1-27所示。图1-27 插件列表(5)选中Android DDMS和Android Development Tools,然后单击Next按钮来到安装界面,如图1-28所示。图1-28 插件安装界面(6)选择I accept选项,单击Finish按钮,开始进行安装,如图1-29所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载