黑马程序员技术交流社区

标题: 【阳哥专栏】黑马Android教程-Android基础01入门 [打印本页]

作者: 王震阳老师    时间: 2015-3-1 10:30
标题: 【阳哥专栏】黑马Android教程-Android基础01入门
本帖最后由 王震阳老师 于 2015-3-23 22:09 编辑

Android基础-01入门








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下载地址:
        http://developer.android.com/sdk/index.html
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安装
完成之后:
创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD。
注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而target下拉列表没有可选项时,这时候:
HelloWorld
[color=rgb(87, 137, 220) !important]

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

创建一个AVD的一些注意事项:
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对象,且只能有一个。









作者: liuhuan    时间: 2015-3-1 10:39
谢谢老师,顶贴。。
作者: syfsyf1993    时间: 2015-3-1 10:40
多谢老师分享  拿走去看
作者: 邓士林    时间: 2015-3-1 10:45
果断收藏,沙发一个:P
作者: 王震阳老师    时间: 2015-3-1 10:53
邓士林 发表于 2015-3-1 10:45
果断收藏,沙发一个

各位,我还在编辑中。。。
作者: 王震阳老师    时间: 2015-3-1 10:56
syfsyf1993 发表于 2015-3-1 10:40
多谢老师分享  拿走去看

我还在编辑中
作者: 王震阳老师    时间: 2015-3-1 10:56
liuhuan 发表于 2015-3-1 10:39
谢谢老师,顶贴。。

还在编辑中,一会儿更好看
作者: 呼啸而过    时间: 2015-3-1 10:59
谢谢分享
作者: 王震阳老师    时间: 2015-3-1 10:59
呼啸而过 发表于 2015-3-1 10:59
谢谢分享

哈哈,感谢
作者: Imp_x    时间: 2015-3-1 11:07
我来看看更精彩的部分在哪:P看网上的安卓都一头雾水的
作者: a986875894    时间: 2015-3-1 11:12
老师 我有一个奇怪的问题哈 就是我在创建项目的时候 选择最低版本是4.0以上啥事都没有 选择4.0一下  R.java就不见了 ...刚创建就不见了 什么图片 布局文件我还没动过 .. 这是咋回事
作者: 王震阳老师    时间: 2015-3-1 11:18
a986875894 发表于 2015-3-1 11:12
老师 我有一个奇怪的问题哈 就是我在创建项目的时候 选择最低版本是4.0以上啥事都没有 选择4.0一下  R.java ...

这个情况我没遇到过,没有看到项目不好解释。
作者: Oo不弃    时间: 2015-3-1 11:23
学习了!!
作者: 习惯就好    时间: 2015-3-1 11:47
果断收藏!
作者: qq563426478    时间: 2015-3-1 14:00
果断点赞     真的是太经典了
作者: 千殇一梦    时间: 2015-3-1 16:06
给力,学习一下
作者: 血色@残阳    时间: 2015-3-1 18:09
很有用,必须收藏
作者: 浮夸    时间: 2015-3-1 19:39
点个赞
作者: fantacyleo    时间: 2015-3-1 20:26
WOW,这个笔记太精彩了!!!感谢黑马老师们的辛勤劳动和无私奉献!!!
作者: 赵耿    时间: 2015-3-1 21:31
非常给力!
作者: 王震阳老师    时间: 2015-3-2 09:29
fantacyleo 发表于 2015-3-1 20:26
WOW,这个笔记太精彩了!!!感谢黑马老师们的辛勤劳动和无私奉献!!!

哈哈,感谢你的回复。
作者: 埗箬    时间: 2015-3-2 09:29
哦。。哦哦。。。哦哦哦。。。好东西啊。
作者: 党静锋    时间: 2015-3-2 11:12
来个ios的!!!!!!
作者: 王震阳老师    时间: 2015-3-2 11:20
党静锋 发表于 2015-3-2 11:12
来个ios的!!!!!!

:)那得让我先买个mac
作者: 党静锋    时间: 2015-3-2 11:55
王震阳老师 发表于 2015-3-2 11:20
那得让我先买个mac

哈哈,好!!!!
作者: 刘力玮    时间: 2015-3-2 11:56
感谢老师,赞。
作者: Ender亮    时间: 2015-3-2 22:03
大神来了
作者: 张_磊    时间: 2015-3-2 23:27
老师大赞!谢谢老师!!
作者: 王震阳老师    时间: 2015-3-2 23:54
张_磊 发表于 2015-3-2 23:27
老师大赞!谢谢老师!!

哈哈,感谢夸奖。
作者: 笑望长空,逆转    时间: 2015-3-3 09:54
非常给力,我基本是这个步骤完成的配置。
作者: 王震阳老师    时间: 2015-3-3 10:02
笑望长空,逆转 发表于 2015-3-3 09:54
非常给力,我基本是这个步骤完成的配置。

感谢夸奖,
作者: 王震阳老师    时间: 2015-3-3 10:03
笑望长空,逆转 发表于 2015-3-3 09:54
非常给力,我基本是这个步骤完成的配置。

http://heima.apps.cn
下载最新同步APK教程。
作者: 鲍阳    时间: 2015-3-3 12:18
管理员刷屏啦
作者: Ann_1990    时间: 2015-3-3 12:39
太给力了,王老师~
作者: hyc120500    时间: 2015-3-3 14:49
给我们初学者真的是很大的帮助,谢谢老师
作者: 菜鸟一号    时间: 2015-3-3 14:55
谢谢阳哥,刚需要看安卓的安装:lol
作者: 笑望长空,逆转    时间: 2015-3-3 15:05
王震阳老师 发表于 2015-3-3 10:03
http://heima.apps.cn
下载最新同步APK教程。

好的,非常感谢。
作者: 笑望长空,逆转    时间: 2015-3-3 15:07
王震阳老师 发表于 2015-3-3 10:03
http://heima.apps.cn
下载最新同步APK教程。

安装上了
作者: play1369    时间: 2015-3-3 17:16
请问为什么我到这步,刷不出Developer Tools呢

1.png (82.49 KB, 下载次数: 56)

1.png

作者: 378939632    时间: 2015-3-3 21:58
非常给力,相信不久之后我也是牛人啊
作者: z47057554    时间: 2015-3-4 03:09
还在学基础,还有段距离
作者: 执念    时间: 2015-3-4 09:31
提前来看看:)
作者: 竹叶君子    时间: 2015-3-4 09:44
这么详细啊,不错
作者: 起个好名字    时间: 2015-3-4 16:08
学 习 了
作者: 还是菜鸟    时间: 2015-3-4 23:00
老师给了,果断收藏
作者: mxdeheima    时间: 2015-3-5 09:34
果断收藏呀,老师辛苦了
作者: 陈酷    时间: 2015-3-5 10:44
来学习来了
作者: 王震阳老师    时间: 2015-3-5 10:47
mxdeheima 发表于 2015-3-5 09:34
果断收藏呀,老师辛苦了

哈哈,多谢,不客气。
作者: qq10763582    时间: 2015-3-6 07:03
提前学习下:victory:
作者: 赵涛涛    时间: 2015-3-6 21:26
收藏收藏!!!绝对的好资料
作者: challenge    时间: 2015-3-7 08:45
很全面,以后可能做安卓。
作者: 林吉前    时间: 2015-3-8 00:21
:D我就看看                     
作者: ITheima-Ssmnr    时间: 2015-3-9 19:11
不错不错。学习了
作者: 复仇的撒旦    时间: 2015-3-9 23:02
做的好精致
作者: qq10763582    时间: 2015-3-10 03:41
来学习来了
作者: xingzjx    时间: 2015-3-10 19:44
学习了。。。
作者: 张耀东    时间: 2015-3-10 21:36
这个赞,感谢黑马老师
作者: 小小迪    时间: 2015-3-11 11:35
有用的好东西
作者: 栗子木头    时间: 2015-3-11 21:20
很有收获呀,感谢黑马老师们的无私奉献!!!
作者: 浓眉小眼    时间: 2015-3-11 21:33
威武霸气
作者: tom200989    时间: 2015-3-11 22:27
快要学习安卓,好紧张啊,怕不会

作者: 王震阳老师    时间: 2015-3-11 23:34
tom200989 发表于 2015-3-11 22:27
快要学习安卓,好紧张啊,怕不会

要相信自己,努力就会有收获。
作者: smartisan    时间: 2015-3-14 09:07
Oo不弃 发表于 2015-3-1 11:23
学习了!!

都敏俊兮
作者: smartisan    时间: 2015-3-14 09:08
it's really good,thanks!!
作者: 东方蓂荚    时间: 2015-3-14 11:02
支持阳哥,感谢分享!
作者: 王震阳老师    时间: 2015-3-14 16:24
东方蓂荚 发表于 2015-3-14 11:02
支持阳哥,感谢分享!

哈哈,感谢支持。
作者: 等风的车    时间: 2015-3-14 18:41
真的屌。。
作者: 邓士林    时间: 2015-3-22 19:43
为什么我的拨号会这样的提示,先添加到联系人,最后拨号还是不成功

捕获.PNG (15.3 KB, 下载次数: 132)

捕获.PNG

作者: macover    时间: 2015-3-23 22:40
收藏先,非常感谢
作者: 王震阳老师    时间: 2015-3-23 22:47
邓士林 发表于 2015-3-22 19:43
为什么我的拨号会这样的提示,先添加到联系人,最后拨号还是不成功

汇总贴:http://bbs.itheima.com/thread-180149-1-1.html
作者: -code-    时间: 2015-3-24 01:26
阳哥依旧给力
作者: 邓士林    时间: 2015-3-24 07:10
邓士林 发表于 2015-3-22 19:43
为什么我的拨号会这样的提示,先添加到联系人,最后拨号还是不成功

代码就是你上面的实例代码,一模一样敲得
作者: yh903450130    时间: 2015-3-24 08:16
非常给力!
作者: 萍水相逢    时间: 2015-3-24 08:35
谢谢阳哥的笔记
作者: 萍水相逢    时间: 2015-3-24 08:36
谢谢阳哥的笔记
作者: 萍水相逢    时间: 2015-3-24 08:38
谢谢阳哥的笔记
作者: 萍水相逢    时间: 2015-3-24 08:40
谢谢阳哥的笔记
作者: mayor125    时间: 2015-3-24 10:08
好好学习,天天向上~
作者: 中华小便当    时间: 2015-3-24 16:39
回复看看
作者: psttt    时间: 2015-3-28 02:04
很详细, 不错。
作者: NewOnce`    时间: 2015-3-28 07:31
果断收藏了
作者: 何剑钟    时间: 2015-3-28 11:56
学习好东西
作者: linliner    时间: 2015-3-28 21:52
挨个回复看下

作者: 脚踏实地2015    时间: 2015-3-28 22:05
好东西 ,给力
作者: 奔跑的孙莹    时间: 2015-3-29 00:39
额 学习学习
作者: nilielie    时间: 2015-3-30 06:27
非常赞啊,学习了
作者: D.reamJA    时间: 2015-3-30 09:18
杨哥你好!!!:D
作者: 倒骑驴走着瞧    时间: 2015-3-30 21:41
黑马威武,加油啊
作者: l540144279    时间: 2015-3-30 21:44
赞一个,先留个名,正在向Android就业班努力!
作者: 王震阳老师    时间: 2015-3-30 21:45
l540144279 发表于 2015-3-30 21:44
赞一个,先留个名,正在向Android就业班努力!

加油!!
作者: 王震阳老师    时间: 2015-3-30 21:45
倒骑驴走着瞧 发表于 2015-3-30 21:41
黑马威武,加油啊

大家一起加油。
作者: 王震阳老师    时间: 2015-3-30 21:45
D.reamJA 发表于 2015-3-30 09:18
杨哥你好!!!

你好,我姓王。哈哈。
作者: Never、saydie    时间: 2015-3-31 22:52
从零开始学android
作者: nian    时间: 2015-4-1 15:57
不错 赞~!!!:victory:
作者: hamesksk    时间: 2015-4-1 17:29
拿附件学习01
作者: 浮沉-黑马    时间: 2015-4-1 18:02
雪中送炭。。。。
作者: li子文    时间: 2015-4-1 18:57
太好了,怎么全的笔记,谢谢楼主
作者: 胡宗钊    时间: 2015-4-2 19:31
学习参考
作者: 时间都去哪了    时间: 2015-4-5 00:18
啦啦啦德玛西亚
作者: 星河    时间: 2015-4-5 12:19
很有用   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2