1.Android手机平台的发展与现状
Android创始人Andy Rubin。
2008.9.22第一款Android手机:T-Mobile G1
2010.1.7谷歌旗下首款合作品牌手机Nexus One(HTC G5)
2.Android手机平台的架构与特性
底层建立在Linux上,Android系统由5部分组成:
应用程序层
应用程序框架:不管是Android系统提供的程序还是普通开发者提供的程序,都可以访问Android提供的API框架。
函数库:我们不能直接调用这些C/C++库,但是可以通过应用程序框架来调用。
Android运行时:Android核心库和Dalvik虚拟机。
Dalvik虚拟机和JVM区别:JVM直接从.class或JAR包中加载字节码然后运行,而Dalvik运行的是专有dex文件,需要
通过DX工具将应用程序的.class文件编译成.dex文件。
3.搭建Android应用的开发环境
SDK Manager结构:
docs:SDK开发文件和API文档
extras:谷歌提供的USB驱动、Intel提供的硬件加速等附加工具包
platform-tools:平台相关工具
samples:平台相关工具
sources:Android源代码
使用真机调试USB连接,手机厂商官网下载驱动,设置为开发者模式,勾选“不锁定屏幕”,“USB调试”,“允许模拟位置”
4.管理Android的虚拟设备
使用AVD调试:设置ANDROID_SDK_HOME环境变量,保存虚拟机的位置
5.使用Android模拟器
模拟器无网络信号,只有运行模拟器的电脑已经联网,都应该有网络,如果电脑没有联网,可以更改电脑DNS服务器设为与本机相同。
6.调试工具DDMS的用法
Dalvik Debug Monitor Service
设备面板
信息输出面板:
线程跟踪面板:设备面板上点show thread updates
heap内存跟踪面板:堆内存分配和回收信息
模拟器控制面板:控制模拟器打电话发短信
文件管理对话框:
7.使用ADB工具复制文件、安装APK等
Android Dubug Bridge,可以完成模拟器文件与电脑文件相互复制,安装APK应用,直接却换到Android系统中执行Linux命令。
8.DX、AAPT工具的用法
Dx工具用于将来Android应用的*.class文件转换成*.dex文件
Android Asset Packaging Tool(AAPT)打包资源包。
9.在Eclipse中使用ADT开发Android应用
1.创建Android项目
2.XML布局文件汇总定义应用程序用户界面
3.Java代码中编写业务实现
10.掌握Android应用的结构
libs
res
src
AndroidManifest.xml:
应用程序包名,该包名将会作为该应用的唯一标识。
应用程序多包含的组件,如Activity,Service,BroadcastReceive,ContentProvider
应用程序兼容的最低版本
应用程序使用系统所需的权限声明
其他应用程序访问该程序所需的权限声明
<?xml version="1.0" encoding="utf-8"?>
<!-- 指定该应用的包名,该包名可用于唯一地表示该应用 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.llc.helloworld"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!--定义Android应用的第一个组件:Activity,该Activity的类为 .MainActivity
并指定该Activity的标签 -->
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<!-- 指定该Activity是程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载该应用时运行该Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
11.Android应用的程序权限
1.声明运行该应用本身需要的权限,<manifest../>元素添加<user-permission../>子元素
<!--声明该应用本身需要打电话权限 -->
<user-permission android:name="android.permission.SEND_SMS"/>
2.声明调用该应用所需要的权限,<activity../>元素添加<user-permission../>
常见权限:P29
12.Android应用的四大组件
Activity:只能通过setContentView(View)来显示指定组件
Service:独立的生命周期,通常为其他组件提供后台服务或监控其他组件的运行状态
BroadcastReceiver:与普通事件监听器不同的是,普通事件监听器监听的事件源是程序中的对象,BroadcastReceiver监听源是Android
应用中的其他组件
ContentProvider:跨应用之间需要实现实时的数据交换。
组件之间的通信以Intent为载体,Intent封装了当前组件需要启动或者触发的目标组件的信息。
Intent分为显式和隐式:显式明确指定需要启动或触发的组件的类名。
隐式只是指定需要启动或触发的组件应满足什么样的条件,用IntentFilter来判断是否符合隐式Intent
16.对Android应用程序进行签名
签名的作用:确定发布者身份,开发者可以通过使用包名来替换已经安装的程序,使用签名可以避免发生这种情况。
确保应用完整性,签名会对应用包中的每个文件处理,确保包中文件不会被替换。
步骤:右击Android项目,”Android Tools“->"Export Signed Application Package"
命令行对”未签名“包签名:JDK目录下的keytools.exe工具来生成数字证书
ttips:eclipse无法导出android签名包的问题:
用 Eclipse 导出带签名的APK程序时候报如下错误:
Export aborted because fatal lint errors were found.These are listed in the Problems view.Either fix these before running Export again,or turn off "Run full error check when exporting app" in the Android > Lint Error checking preference page.
解决办法:在 eclipse中 打开 Windows 菜单下属性选项卡,在左边 android 下面的 Lint Error checking 下面 将Run full error check when exporting app前面的勾去掉就可以了