A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王震阳老师 于 2015-3-23 22:09 编辑



pdf内容回复可见:
游客,如果您要查看本帖隐藏内容请回复
1. 什么是Android
Android系统最初由安迪·鲁宾等人开发制作,最初开发。这个系统的目的是创建一个数码相机的先进操作系统,后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统。Android于2005年8月被美国科技企业Google收购。
2. Android版本进化史

     1.5  Cupcake(纸杯蛋糕)
          1.6  Donut(甜甜圈)---首次支持CDMA
     2.0  Éclair(松饼)---多账户支持,第二个里程碑(第一个是1.5)
     2.1  Eclair(闪电泡芙)
     2.2  Froyo(冻酸奶)
     2.3  Gingerbread(姜饼)---支持NFC
     3.0  Honeycomb(蜂巢)
     4.0  Ice cream SandWich(冰激凌三明治)---安卓历史上最重大的一次升级
     4.1  Jelly Bean (果冻豆 )---继蜂巢后一次全新的平板策略尝试
     4.2  Jelly Bean (果冻豆 )
     5.0  Lime Pie  (酸橙派)
3. Android体系结构
Android是一个完整的操作系统,包含了中间件和包含了一些关键的应用程序。
Android有四层架构,自上向下依次为:
             应用层
             应用框架层
             函数库
             Linux内核

4. [color=rgb(87, 137, 220) !important][url=]JVM和DVM的区别[/url]
Google为了解决与Oracle之间关于Java相关专利和授权的纠纷,开发了DVM。
JVM和DVM之间的区别:
     dvm执行的是.dex格式文件  jvm执行的是.class文件   android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和.dex文件等打包成.apk文件。apk就是android package的意思。 jvm执行的是.class文件。
     dvm是基于寄存器的虚拟机  而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。
     class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了类的查找速度
5. ART模式概述
ART模式是Android Runtime的简称,从Android 4.2开始出现。在Android 4.2以前,安卓手机系统的应用程序均在Dalvik Java的虚拟机上运行,这种运行模式是还要依靠一个编译器来实现与应用程序的沟通。应程序每次运行时,都需要将程序内的代码及时转变为机器码才能运行,这无形中多附加了一道手续,这就造成了耗电相对较快、占用内存大、即使是旗舰机用久了也会卡顿严重的现象。
ART模式通过在安装应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。但凡事总有正反两面,ART在解决了该问题的同时,同时也有如:会占用略高一些的存储空间、安装程序时要相比普通Dalvik模式要长一些时间来实现预编译。
6. Android开发环境搭建
Android开发环境的两种安装方式:
JDK+Eclipse+ADT
直接下载集成的开发工具,解压即可用。由于第一中方法受到网络限制等的因素,在线安装不一定能顺利完成,因此黑马程序员提供了事先集合好的一体化开发工作。下载地址:
[color=rgb(87, 137, 220) !important]http://pan.baidu.com/s/1dD3s3bN
不管采用哪种安装方式,在安装前都必须先在电脑上安装JDK。
6.1 JDK的安装和Java环境变量的设置
JDK下载地址
安装Android开发环境前,需要给电脑配置JDK。下载地址:[color=rgb(87, 137, 220) !important]http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK(Java Development Kit)是整个Java的核心,包括一系列Java开发的东西,安装完毕需要配置一下环境变量。
JAVA_HOME
JDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用%JAVA_HOME%作为统一引用路径,其值为:jdk在你电脑上的安装路径。
PATH
PATH属性已存在,可直接编辑。作用是用于配置路径,简化命令的输入,其值为:%JAVA_HOME%\bin。
CLASSPATH
验证JDK是否安装成功
配置完毕后,通过cmd运行以下命令:java -version,javac 如果出现返回信息,则设置成功。


6.2 JDK+Eclipse+ADT的安装方法
下载Eclipse
  Eclipse下载地址:http://www.eclipse.org/downloads/? (选择Eclipse Standard版本即可)。
Eclipse为Java及Android开发的IDE。Eclipse不需要安装,把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。
下载Android SDK
        Android SDK下载地址:
Android SDK为Android管理开发包工具,提供了Android各级平台的开发包和工具。注意,因为我们是独立安装,不是一体化(集成系列工具)所以需要单独下载SDK。下载完成后解压到任意路径。
运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。
选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。公司内网的话需要使用代理来下载。
在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:\AndroidDevelop\android-sdk-windows\tools)。
[color=rgb(87, 137, 220) !important]
“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。
运行 android –h 如果有类似以下的输出,表明安装成功:

ADT安装
  • 打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software"
  • 点击Add...按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入[color=rgb(87, 137, 220) !important]http://dl-ssl.google.com/android/eclipse。如下图所示:
  • 确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:
  • 然后就是按提示一步一步next。
完成之后:
  • 选择Window > Preferences...
  • 在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:
    D:\AndroidDevelop\android-sdk-windows
  • 点击Apply、OK。配置完成。
创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD。
  • 1、在Eclipse中。选择Windows > Android SDK and AVD Manager
  • 2、点击左侧面板的Virtual Devices,再右侧点击New
  • 3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值
  • 4、点击Create AVD即可完成创建AVD
注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候:
  • 然后点击Install Selected按钮,接下来就是按提示做就行了
HelloWorld
  • 通过File -> New -> Project 菜单,建立新项目"Android Project"
  • 然后填写必要的参数,如下图所示:(注意这里我勾选的是Google APIs,你可以选你喜欢的,但你要创建相应的AVD)
  • 点击Finish后,点击Eclipse的Run菜单选择Run Configurations…
  • 选择“Android Application”,点击在左上角(按钮像一张纸上有个“+”号)或者双击“Android Application”, 有个新的选项“New_configuration”(可以改为我们喜欢的名字)。
  • 在右侧Android面板中点击Browse…,选择HelloWorld
  • 在Target面板的Automatic中勾选相应的AVD,如果没有可用的AVD的话,你需要点击右下角的Manager…,然后新建相应的AVD。如下图所示:
  • 然后点Run按钮即可,运行成功的话会有Android的模拟器界面,如下图所示:
[color=rgb(87, 137, 220) !important]

7. Android项目工具
7.1  Android虚拟机 AVD
AVD:Android Virtual Device 安卓虚拟设备
点击Eclipse工具栏手机形状的图标去查看当前的Android模拟器

创建一个AVD的一些注意事项:
  • Device选项常用的3种屏幕适配
    • VGA :640*480  标准的屏幕大小
    • HVGA:320*480  一般的VGA
    • QVGA :320*240  4分之一的VGA
  • 默认情况下,Android会给每个应用的内存堆分配16M
7.2  DDMS
DDMS: Device Definition monitor Service 设备信息监听服务
常用的2个选项卡:File Explorer / Emulator Control
File Explorer : 文件管理器,即Android系统的文件目录管理
常用的文件夹:
data/app : 装三方应用程序用的
data/data : 应用程序包(包名是区分不同应用程序的唯一标志)
Emulator Control : 模拟器控制器
常用功能:
Speed : 支持的速度,可选3G,2G,全部等
Incoming number : 填写一个号码,可以对模拟器打电话、发短信
Location Controls : 可以填写经纬度,更改模拟器的位置信息
7.3 SDK目录结构
目录说明:
1、add-ons这里面保存着附加库,比如GoogleMaps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面。
  2、docs这里面是Android SDKAPI参考文档,所有的API都可以在这里查到。
  3、market_licensing作为AndroidMarket版权保护组件,一般发布付费应用到电子市场可以用它来反盗版。
  4、platforms是每个平台的SDK真正的文件,里面会根据APILevel划分的SDK版本,这里就以Android2.2来说,进入后有 一个android-8的文件夹,android-8进入后是Android2.2SDK的主要文件,其中ant为ant编译脚本,data保存着一些系 统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则 是该版本的主要framework文件,tools目录里面包含了重要的编译工具,比如aapt、aidl、逆向调试工具dexdump和编译脚本dx。
  5、platform-tools保存着一些通用工具,比如adb、和aapt、aidl、dx等文件,Android123提示,这里和platforms目录中tools文件夹有些重复,主要是从android2.3开始这些工具被划分为通用了。
  6、samples是Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学 习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主 题开发Home则是androidm5时代的主题设计原理。
  7、tools作为SDK根目录下的tools文件夹,这里包含了重要的工具,比如ddms用于启动Android调试工具,比如logcat、屏 幕截图和文件管理器,而draw9patch则是绘制android平台的可缩放png图片的工具,sqlite3可以在PC上操作SQLite数据库, 而monkeyrunner则是一个不错的压力测试应用,模拟用户随机按键,mksdcard则是模拟器SD映像的创建工具,emulator是 Android SDK模拟器主程序,不过从android 1.5开始,需要输入合适的参数才能启动模拟器,traceview作为android平台上重要的调试工具。
  8、usb_driver顾名思义,保存着android平台google官方机型的驱动如nexusone、nexuss,同时也有一些老机型驱动的支持,比如说htcdream、htcmagic和motorola的droid。

7.4  Android应用程序目录结构
上图中蓝色框住区域是一个完整项目的目录结构。目录结构说明:
  src/java原代码存放目录
  gen/        自动生成目录
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

  bin 用于存放ADT编译时产生的临时文件, 最终会被打包成一个xxx.apk

  res/资源(Resource)目录
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。
res/drawable
专门存放png、jpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源
res/layout
专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面
res/values
专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中。
strings.xml 定义字符串和数值
arrays.xml 定义数组
colors.xml定义颜色和颜色字串数值
dimens.xml 定义尺寸数据
styles.xml 定义样式。
res/anim/
存放定义动画的XML文件
res/xml/
在Activity中使用getResources().getXML()读取该目录下的XML资源文件
res/raw/
该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序安装包里

  libs/支持库目录
程序开发时需要的一些三方的jar包可以放在这个目录,系统会自动把里面的jar包,添加到环境变量。
  assets资源目录
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp
  AndroidManifest.xml项目清单文件
这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。
  project.properties项目环境信息,一般是不需要修改此文件
7.5Android调试桥--adb
  一:adb是什么?adb有什么用?adb工具如何用?
     adb是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即可使用adb命令,adb的全称为Android Debug Bridge,是起到调试桥的作用,通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具,adb的工作方式比较特殊,采用**Socket TCP 5554等端口的方式让IDE和Qemu(模拟处理器)通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行,借助adb工具我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等,其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
  二:ADB的主要功能有哪些?
  1:查看当前模拟器或者Android设备实例的状态
  一般在使用前都会使用adb devices这个命令查看一下模拟器的状态,通过这个命令得到ADB的回应信息,可以看到ADB作为回应为每个实例制定了相关的信息。
  1.1:emulator-5554为实例名称
  1.2:device为实例连接状态,device表示此实例正与adb相连接,offline表示此实例没有与adb连接或者无法响应
  
  2:安装和卸载APK应用程序
  你可以从电脑上复制一个APK应用到模拟器或者Android设备上,通过adb install <path_to_apk>安装软件,adb uninstall <packageName>卸载软件,如果你不知道这个包名,在AndroidManifest.xml里的找package=""就可以了
  2.1: 先把apk文件拷贝到sdk目录下的tools
  
  2.2: 进入dos下切换到SDK的安装路径下的tools目录
  2.3 :执行安装命令  
  adb install <path_to_apk>
  
  发生的错误,因为我连接了真机,而且也打开了模拟器,所以adb给我的回应信息是“比一个多的驱动设备和模拟器”,我最后关闭掉了模拟器在运行安装命令,就提示安装成功了
  
  卸载APK
  
  3:从本机上复制文件到模拟器或者Android设备
  adb push <本地路径><远程路径>,<本地路径>指的是自己的机器上或者模拟器上的目标文件,<远程路径>指的是远程设备实例上的目标文件
  4:从模拟器复制文件到模拟器或者Android设备
  adb pull <远程路径><本地路径>,<本地路径>指的是自己的机器上或者模拟器上的目标文件,<远程路径>指的是远程设备实例上的目标文件
  5:使用shell命令
  输入adb shell就可以进入shell命令行了,可以使用一些常用的shell命令,如:ls命令列出了文件
  




8. Android常用布局
Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是LinearLayout(线性布局)、RelationLayout(相对布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、TabLayout(表格布局)。其中前3种布局用的频率一般是最高的。
绝对布局:
在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。
表格布局
 适用于N行N列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。
  TableRow是LinearLayout的子类,TableLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数, TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。如果想TableLayout里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。
  TableLayout继承了LinearLayout,因此他完全可以支持LinearLayout所支持的全部XML属性,除此之外TableLayout还支持以下属性:

XML属性  
相关用法  
说明
andriodcollapseColumns
setColumnsCollapsedint boolean
设置需要隐藏的列的序列号,多个用逗号隔开
androidshrinkColumns
setShrinkAllColumnsboolean
设置被收缩的列的序列号,多个用逗号隔开
androidstretchColimns
setSretchAllColumndsboolean
设置允许被拉伸的列的序列号,多个用逗号隔开


8.1 线性布局
线性布局可以分为水平和垂直方向的布局,可以通过android:orientation来定义方向
android:orientation=“horizontal”表示水平方向
android:orientation=“vertical”表示垂直方向
下面通过代码实现一个线性布局。

新建工程,工程名字叫《线性布局》
然后一直执行Next直到Finish即可。项目的目录结构如下图:
编写布局文件activity_main.xml
由于布局文件比较长,因此把该布局文件拆分成了三份。
布局文件第一部分:














布局文件第二部分:



布局文件第三部分:


编写java文件MainActivity.java
该java文件是ADT自动生成的。


MainActivity.java

将该项目运行在模拟器上








运行效果如图
8.2 相对布局
相对布局是实际布局中最常用的布局方式之一。相对布局在xml文件中使用<RelativeLayout>来定义。相对布局可以设置某一个视图相对于其他视图的位置,这些位置可以包括上下左右等,因而相较于其他的布局方式而言具有很大的灵活性。
下面通过代码实现一个相对布局。
:创建工程步骤跟线性布局一样,因此直接给出布局文件盒运行效果。
相对布局运行效果图
相对布局布局文件activity_main.xml






布局文件第一部分:

布局文件第二部分:


布局文件第三部分:

8.3 帧布局(也叫框架布局)
框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一。框架布局在xml文件中使用<FrameLayout>来定义。框架布局中的子视图总是被绘制到相对于屏幕的左上角上,所有添加到这个布局中的视图都是以层叠的方式显示,第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图,类似于html中的div。
帧布局的运行效果图:
帧布局的布局文件activity_main.xml
布局文件第一部分:
布局文件第二部分:

8.4 Android中的屏幕单位
1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px会比较多。通常不推荐使用这个。
2.dip或dp(与密度无关的像素):一个基于density(密度)的抽象单位,这个和设备硬件有关,通常在开发中设置一些view的宽高推荐用这个,一般情况下,在不同分辨率,都不会有缩放的感觉。在运行时, Android根据使用中的屏幕的实际密度, 透明地处理任何所需dip单位的缩放。
3.sp(与刻度无关的像素):同dip/dp相似,会根据用户的字体大小偏好来缩放,主要用于设置字体的大小。
4.dip和px 的区别:
首先明确一点:
HVGA屏density=160;QVGA屏density=120;
WVGA屏density=240;WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念。
dip到px的转换公式: px = dip * (density / 160)
Android官方定义dip等价于160dpi屏幕下的一个物理像素点, 即1dip=1px。举例来说, 在 240 dpi 的屏幕上, 1dip 等于 1.5px。

不同density下屏幕分辨率信息,以480dip*800dip的 WVGA(density=240)为例:
    1.当density=120时屏幕实际分辨率为240px*400px (两个点对应一个分辨率)状态栏和标题栏高为19px或者25dip。
横屏时屏幕宽度为400px或者800dip,工作区域高度211px或者455dip;
竖屏时屏幕宽度为240px或者480dip,工作区域高度381px或者775dip。
    2.当density=160时屏幕实际分辨率为320px*533px (3个点对应两个分辨率)状态栏和标题栏高为25px或者25dip。
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者455dip;
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip。
    3.当density=240时屏幕实际分辨率为480px*800px (一个点对于一个分辨率)状态栏和标题栏高为38px或者25dip。
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者455dip;
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip。
  :  在Android的应用包apk中,系统会根据各个设备的具体情况引用相应的资源文件(注:不加任何标签的资源是各种分辨率情况下共用的):
当屏幕density=240时,使用hdpi标签的资源;
当屏幕density=160时,使用mdpi标签的资源;
当屏幕density=120时,使用ldpi标签的资源。
下面是在manifest中设置app在不同分辨率时,是否支持多密度的方法。

:dip跟px单位换算辅助工具类:

9. Android入门案例9.1 电话拨号器
制作一个电话拨打器,输入要拨打的电话号码,点击拨打按钮,可以拨出电话,效果图如下:
创建一个工程,工程名为《电话拨号器》
编写布局文件。这里以线性布局为例
编写Activity 类继承Activity,实现拨打电话功能
在清单文件AndroidManifest.xml中注册该Activity
:在创建工程的时候ADT会自动为我们创建一个默认的Activity,MainActivity.java,该Activity已经在清单文件中进行了注册。
在清单文件中给工程添加权限
:一般情况下凡是涉及到用户利益的操作都需要添加权限。这里就必须给应用程序添加android.permission.CALL_PHONE,否则应用程序在打电话的时候会报权限拒绝异常。


不添加权限时异常信息,这应该是开发中避免的。当某个操作我们不知道需要具体什么样的权限时可以通过Logcat的异常信息获取。











双击AndroidManifest.xml清单文件,选择Permission视图,点击Add...








在弹出的权限对话框中,选择Uses Permission选项







找到android:name="android.permission.CALL_PHONE",并保存。
将应用程序部署到模拟器
:第一次运行程序前需要创建虚拟机。创建虚拟机过程如下。
启动AVD Manager
创建一个新的虚拟机
启动一个创建好的虚拟机
至此,虚拟机已经创建完毕,并启动起来。
:虚拟机在没有硬件加速模式下启动可能需要3到5分钟,在硬件加速模式下2分钟以内即可。下面内容将演示如何使用HAXM加速Android虚拟机。
9.2  使用HAXM加速Android虚拟机
Android虚拟机在支持Intel VT技术的CPU上,可以使用HAXM(Hardware Accelerated Execution Manager)得到硬件加速支持,使得虚拟机运行速度得到极大提升,速度提升5-10倍。
:你必须拥有一颗支持VT的CPU,这个技术是Intel的,所以AMD的CPU估计用不上了。支持VT的CPU具体可以查询[color=rgb(87, 137, 220) !important]http://ark.intel.com/Products/VirtualizationTechnology,一般i5以上的CPU都是没问题的。
想要使用HAXM技术,在Android开发环境中进行如下配置:
升级Eclipse Plugin,使用ADT的最新版本。
升级Android SDK Tools到最新版本,支持HAXM的版本是从17开始的。
在Android SDK Manager中下载Intel x86 Atom System Image,你可以只下载你对应API版本的系统就可以了。
在Android SDK Manager中下载Intel Hardware Accelerated Execution Manager Driver,这个是在Extras分类下面,默认是不安装的。
安装Intel HAXM driver。执行完第4步后,你就可以在android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager目录下找到安装程序,例如haxm-windows_r02.exe,安装即可。如果你的CPU不支持VT,会得到提示无法安装。
创建x86 AVD。这步很简单了,创建一个Android虚拟机,关键是CPU要选择Intel x86 Atom,否则速度也提升不起来。

9.3  短信发送器
制作一个短信发送器,添加发送人信息和发送信息主体内容后,点击发送按钮,可以发送短息,其效果图如下:
:工程的创建和电话拨号器类似,出于篇幅的考虑,这里只给出布局文件和java代码的示例。
编写布局文件








布局文件(全):
编写Activity类,实现业务逻辑
在清单文件中注册Activity
给该应用添加发送短信的权限
:权限的添加在电话拨号器中已经说明,因此不再重复演示步骤。
清单文件如下:


部署在AVM上,运行截图如下

10. Android点击事件的四种写法
Android中获取到按钮后,我们一般会为其添加点击事件,而android中的点击事件共有四种。
一、通过匿名内部类来实现
代码摘抄自电话拨号器项目。
二、通过内部类来实现
:其实第二种方法跟第一种方法在本质上没有任何差别,虽然一个是匿名内部类另外一个是内部类,但是这只是写法上的差别,两者都是通过Button对象的setOnClickListener()方法来绑定实现的。
  三、由类文件去实现监听接口
让Activity类实现OnClickListener接口
覆写接口中定义的onClick方法

直接使用this为控件注册事件
  四、在布局文件中注册事件
在布局文件中添加android:onClick 属性

在相应的java代码中定义call方法
:该方法的形参必须为View对象,且只能有一个。








评分

参与人数 1黑马币 +10 收起 理由
万合天宜 + 10 大赞,老师太牛了,正好刚刚入门,学习了~~.

查看全部评分

350 个回复

正序浏览
xuexiyixia
回复 使用道具 举报
谢谢阳哥
回复 使用道具 举报
menmen 来自手机 初级黑马 2017-10-31 09:30:19
344#
非常棒!
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
好资料,特来参考一下
回复 使用道具 举报
牛啊666666666666666
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
6666666666666666666666666666
回复 使用道具 举报
干货,不错
回复 使用道具 举报
学习到了   好多S
回复 使用道具 举报
顶一个!!!
回复 使用道具 举报
赞一个!!!!!!!!!!!
回复 使用道具 举报
huhemingtiancai 来自手机 中级黑马 2016-4-24 16:51:47
333#
拿着看。
回复 使用道具 举报
阳哥多大了
回复 使用道具 举报
学习了学习了
回复 使用道具 举报
阳哥,,可以的
回复 使用道具 举报
zzliuyang 来自手机 中级黑马 2016-4-24 02:54:23
329#
必须赞一个
回复 使用道具 举报
看看先。。。。。。。。。。。。
回复 使用道具 举报
为什么回复后才可以看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马