Android开发权威指南

Android开发权威指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2013-09
版次: 2
ISBN: 9787115320339
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 739页
字数: 1307千字
正文语种: 简体中文
45人买过
  •   《Android开发权威指南(第2版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。
      《Android开发权威指南(第2版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、ContentProvider和BroadcastReceiver)、布局、菜单、控件、资源和本地化、可视化UI设计、对话框、Toast和通知栏(Notification)、Fragment、ActionBar、拖放技术、数据存储技术、Android支持的各种组件技术、通信技术(蓝牙、NFC、网络等)、异步装载、推送技术、多媒体、2D绘图技术、OpenGLES、桌面小部件、动态壁纸、短信和彩信、传感器、GPS、谷歌地图、人机交互、输入法开发、AndroidNDK开发、测试驱动开发、性能优化等。
      《Android开发权威指南(第2版)》并不局限于介绍Android的各种理论知识,而是从“实战”的角度介绍开发技术。本书的所有示例都是精心设计的,足以使读者对当前讲解的理论知识驾轻就熟。这些示例中的很多例子都源于真实的项目,读者可以对这些示例的源程序稍加改动就可用于自己的项目中。本书除了为每一个知识点提供完整的示例外,最后还提供了两个完整的项目:笑脸连连看和NFC侠。这两个项目极具参考价值,尤其是NFC侠,是笔者维护的一个开源项目,用于在不支持NFC的手机或Android模拟器上开发和测试NFC应用。读者可以关注我的Blog来获得NFC侠以及本书的最新信息。
      本书适合有一定Java基础的读者阅读,如果读者已经掌握了Java的基本语法,那么本书将会成为您的首选和枕边书,您将从书中获得更多有价值的Android开发技术。 李宁,东北大学计算机专业硕士,IT讲师、技术顾问。拥有超过10年的软件开发经验。曾任某知名企业项目经理,国内最早的Android和iOS实践者之一,对Android和iOS有深入的研究。精通Java、C、C++、Objective—C等语言。eoeAndroid论坛版主、中国移动开发者社区Android专家。曾在《程序员》、IT168等媒体上发表150多篇技术文章。曾出版《Android开发权威指南》、《Android深度探索卷1:HAL与驱动开发》等畅销书。 第1章初识Android平台
    1.1Android简介
    1.2Android的制胜法宝
    1.3Android的版本发展历程
    1.3.1Android1.5(纸杯蛋糕)
    1.3.2Android1.6(甜甜圈)
    1.3.3Android2.1(松饼)
    1.3.4Android2.2(冻酸奶)
    1.3.5Android2.3(姜饼)
    1.3.6Android3.0(蜂巢)
    1.3.7Android4.0(冰激凌三明治)
    1.3.8Android4.1/4.2(果冻豆)
    1.4Android的系统架构
    1.5小结

    第2章搭建Android开发和测试环境
    2.1搭建Android开发环境需要些什么
    2.2安装Java开发环境
    2.2.1安装JDK
    2.2.2安装和配置Eclipse
    2.3安装Android开发环境
    2.3.1下载和安装AndroidSDK
    2.3.2下载和安装AndroidNDK
    2.3.3安装和配置Eclipse插件:ADT
    2.4配置Android测试环境
    2.4.1建立Android虚拟设备(AVD)
    2.4.2启动Android模拟器
    2.4.3安装真机测试环境
    2.5小结

    第3章第一个Android应用程序
    3.1从第一个Android程序中可以学到什么
    3.2建立Android工程
    3.3Android工程的结构
    3.4在窗口上放两个按钮
    3.5编写窗口类
    3.6修改字符串资源
    3.7运行Android应用程序
    3.8调试Android应用程序
    3.9签名Android应用程序
    3.10小结

    第4章Android应用程序架构
    4.1Android应用程序中的资源
    4.1.1资源存放在哪里
    4.1.2资源的基本使用方法
    4.2Android的应用程序组件
    4.2.1窗口(Activity)组件
    4.2.2服务(Service)组件
    4.2.3广播接收者(Broadcastreceivers)组件
    4.2.4内容提供者(ContentProvider)组件
    4.3AndroidManifest.xml文件的结构
    4.4小结

    第5章窗口(Activity)与视图(View)
    5.1声明和使用Activity
    5.1.1Activity的基本用法
    5.1.2同时适合手机和平板电脑的窗口风格
    5.2Activity的生命周期
    5.3窗口的常用事件
    5.3.1设置窗口标题事件(onTitleChanged)
    5.3.2键盘按下和抬起事件(onKeyDown和onKeyUp)
    5.3.3任意情况下捕捉键盘事件(dispatchKeyEvent)
    5.3.4回退事件(onBackPressed)
    5.3.5按键长按事件(onKeyLongPress)
    5.3.6屏幕触摸事件(onTouchEvent)
    5.3.7窗口获得焦点事件(onWindowFocusChanged)
    5.4在不同Activity之间传递数据
    5.4.1使用Intent传递数据
    5.4.2使用静态变量传递数据
    5.4.3使用剪贴板传递数据
    5.4.4使用全局对象传递数据
    5.5从Activity返回数据
    5.6视图(View)
    5.6.1视图简介
    5.6.2使用XML布局文件定义视图
    5.6.3在代码中控制视图
    5.7显示系统窗口
    5.7.1直接拨号
    5.7.2将电话号传入拨号程序
    5.7.3调用拨号程序
    5.7.4浏览网页
    5.7.5查看联系人
    5.7.6显示系统设置界面(设置主界面、Wi-Fi设置界面)
    5.7.7启动处理音频的程序
    5.7.8回到Home窗口(相当于按Home键)
    5.8与Activity相关的技巧与特效
    5.8.1全屏显示(隐藏标题栏和状态栏)
    5.8.2定制窗口标题栏
    5.8.3为程序添加Splash
    5.8.4改变窗口大小、位置和透明度
    5.8.5按两次关闭窗口
    5.8.6关闭所有的窗口
    5.8.7窗口截屏
    5.9小结

    第6章Intent与IntentFilter
    6.1Android系统的信使:Intent
    6.2Intent对象
    6.2.1Intent对象可以封装和传递哪些信息
    6.2.2组件名(Componentname)
    6.2.3动作(Action)
    6.2.4种类(Category)
    6.2.5数据(Data)
    6.2.6附加数据(Extra)
    6.2.7标志(Flags)
    6.3显式和隐式访问窗口
    6.4跨应用程序访问窗口
    6.5Android系统的过滤机制大揭秘
    6.5.1过滤条件的设置
    6.5.2过滤器的筛选规则
    6.5.3示例:过滤机制应用演示
    6.6Android源代码与过滤器
    6.6.1系统内置程序有哪些窗口可以利用
    6.6.2显示计算器(Calculator)
    6.6.3用浏览器(Browser)显示网页
    6.6.4拨打电话(Phone)与授权
    6.7获取第三方程序中可调用的窗口
    6.8传递附加数据(Extra)
    6.9解析数据
    6.10小结

    第7章窗口(Activity)高级技术
    7.1ActivityXML属性详解
    7.1.1设置Activity的基本信息
    7.1.2屏幕方向切换(android:screenOrientation)
    7.1.3阻止Activity销毁和重建(android:configChanges)
    7.1.4允许Activity被实例化(android:enabled)
    7.1.5在最近应用列表中显示(android:excludeFromRecents)
    7.1.6允许其他程序访问当前窗口(android:exported)
    7.1.7硬件加速(android:hardwareAccelerated)
    7.1.8在多进程中创建窗口实例(android:multiprocess)
    7.1.9无法返回的Activity(android:noHistory)
    7.1.10指定要返回的窗口(android:parentActivityName)
    7.1.11使窗口受到权限的保护(android:permission)
    7.1.12改变窗口所在的进程(android:process)
    7.1.13不保存窗口的状态(android:stateNotNeeded)
    7.1.14窗口的主题(android:theme)
    7.1.15扩展窗口UI(android:uiOptions)
    7.1.16设置输入法显示模式(android:windowSoftInputMode)
    7.2深入探索Activity从创建到销毁的过程
    7.2.1任务(Task)与回退栈(BackStack)
    7.2.2保存窗口(Activity)状态
    7.2.3管理任务和回退栈
    7.2.4Activity的4种创建模式
    7.2.5用Java代码设置窗口创建模式
    7.2.6窗口的乾坤大挪移(affinity)
    7.2.7销毁不再使用的窗口
    7.3Activity的别名
    7.4小结

    第8章布局
    8.1Android的五大布局
    8.1.1框架布局(FrameLayout)
    8.1.2线性布局(LinearLayout)
    8.1.3相对布局(RelativeLayout)
    8.1.4表格布局(TableLayout)
    8.1.5绝对布局(AbsoluteLayout)
    8.2属性资源与Android命名空间
    8.3布局属性
    8.4布局高级技术
    8.4.1布局别名
    8.4.2重用布局
    8.4.3优化布局
    8.4.4动态装载布局
    8.4.5动态设置布局属性
    8.4.6从右到左布局(RTLLayout)
    8.5小结

    第9章菜单
    9.1菜单的基本用法
    9.1.1创建选项菜单(OptionsMenu)
    9.1.2关联Activity
    9.1.3响应菜单的单击动作
    9.1.4动态添加、修改和删除选项菜单
    9.1.5带复选框和选项按钮的子菜单
    9.1.6上下文菜单
    9.1.7菜单事件
    9.1.8从菜单资源中装载菜单
    9.2菜单特效
    9.2.1自定义菜单
    9.2.2模拟UCWeb菜单效果
    9.3小结

    第10章Android的资源详解(一)
    10.1创建资源
    10.1.1手工创建资源文件
    10.1.2用ADT模板创建本地化图标资源
    10.1.3用ADT模板创建XML文件资源
    10.2使用资源
    10.2.1生成资源类文件(R.java)
    10.2.2从XML文件中访问资源
    10.2.3使用Java代码访问资源
    10.2.4Java反射技术与枚举资源
    10.3字符串(String)资源
    10.3.1普通字符串
    10.3.2字符串数组
    10.3.3复数字符串
    10.3.4在字符串中使用引号
    10.3.5用占位符格式化字符串
    10.3.6用HTML标签格式化字符串资源
    10.4值(values)资源
    10.4.1整数(Integer)资源
    10.4.2尺寸(Dimension)资源
    10.4.3布尔(Boolean)资源
    10.4.4颜色(Color)资源
    10.4.5ID资源
    10.4.6整数数组(Integer-Array)资源
    10.4.7类型数组(Typed-Array)资源
    10.5菜单(menu)资源
    10.6图像(drawable)资源
    10.6.1普通图像资源
    10.6.2XML图像资源
    10.6.3Nine-Patch图像资源
    10.6.4XMLNine-Patch图像资源
    10.6.5图层(Layer)资源
    10.6.6图像状态(State)资源
    10.6.7图像级别(Level)资源
    10.6.8淡入淡出(Cross-fade)资源
    10.6.9嵌入(Inset)图像资源
    10.6.10剪切(Clip)图像资源
    10.6.11外形(Shape)资源
    10.7小结

    第11章Android的资源详解(二)
    11.1动画资源
    11.1.1属性(Property)动画
    11.1.2帧(Frame)动画
    11.1.3移动补间(TranslateTween)动画
    11.1.4循环向右移动的EditText与上下弹跳的球
    11.1.5缩放补间(ScaleTween)动画
    11.1.6跳动的心
    11.1.7旋转补间(RotateTween)动画
    11.1.8旋转的星系
    11.1.9透明度补间(AlphaTween)动画
    11.1.10投掷炸弹
    11.1.11震动渲染器(ShakeInterpolator)
    11.1.12自定义渲染器(Interpolator)
    11.2风格(Style)资源与主题(Theme)
    11.3小结

    第12章资源的本地化
    12.1建立本地化的资源目录
    12.2资源目录的命名规则
    12.3建立别名资源
    12.3.1图像别名资源
    12.3.2布局别名资源
    12.3.3字符串别名资源
    12.3.4其他简单值别名资源
    12.4资源目录的优先级
    12.5屏幕适配
    12.5.1屏幕适配要考虑的因素
    12.5.2适配不同屏幕可以采用的规则
    12.5.3屏幕尺寸和屏幕密度
    12.5.4位置、尺寸和字体应使用屏幕密度单位
    12.5.5与屏幕适配有关的标识符
    12.5.6影响屏幕适配的重要因素:布局和图像
    12.5.7典型的屏幕适配案例
    12.5.8在GooglePlay上限制屏幕尺寸和屏幕密度
    12.5.9在Android模拟器上测试各种屏幕尺寸和密度
    12.6小结

    第13章Android的控件详解(一)
    13.1显示文本的控件(TextView)
    13.1.1显示富文本(URL、不同大小、字体、颜色的文本)
    13.1.2用标签在TextView控件上显示图像
    13.1.3单击链接弹出Activity
    13.1.4为指定文本添加背景
    13.2编辑文本的控件(EditText)
    13.2.1像QQ一样输入表情图像
    13.2.2在EditText中输入特定的字符
    13.2.3AutoCompleteTextView(自动完成输入内容的控件)
    13.3按钮(Button)和复选框(Checkbox)控件
    13.3.1Button(普通按钮控件)
    13.3.2图文混排的按钮
    13.3.3ImageButton(图像按钮控件)
    13.3.4RadioButton(选项按钮控件)
    13.3.5ToggleButton(开关状态按钮控件)
    13.3.6CheckBox(复选框控件)
    13.4图像控件(ImageView)
    13.4.1ImageView控件的基本用法
    13.4.2显示指定区域的图像
    13.4.3缩放和旋转图像
    13.5时间与日期控件
    13.5.1DatePicker(输入日期的控件)
    13.5.2TimePicker(输入时间的控件)
    13.5.3DatePicker、TimePicker与TextView同步显示日期和时间
    13.5.4AnalogClock和DigitalClock(显示时钟的控件)
    13.6小结

    第14章Android的控件详解(二)
    14.1进度条控件
    14.1.1ProgressBar(进度条控件)
    14.1.2SeekBar(拖动条控件)
    14.1.3设置ProgressBar和SeekBar的颜色及背景图
    14.1.4RatingBar(评分控件)
    14.2列表控件
    14.2.1ListView(普通列表控件)
    14.2.2为ListView列表项添加复选框和选项按钮
    14.2.3对列表项进行增、删、改操作
    14.2.4改变列表项的背景色
    14.2.5ListActivity(封装ListView的Activity)
    14.2.6ExpandableListView(可扩展的列表控件)
    14.2.7Spinner(下拉列表控件)
    14.3GridView(网格控件)
    14.4TabHost(标签控件)
    14.5ViewStub(惰性装载控件)
    14.6小结

    第15章可视化UI设计
    15.1拖放控件
    15.2设置视图属性
    15.3预览各种屏幕尺寸
    15.4语言和地区的本地化测试
    15.5其他可视化功能
    15.6小结

    第16章对话框、Toast与通知栏(Notification)
    16.1对话框
    16.1.1带2个按钮(确认/取消)的对话框
    16.1.2带3个按钮(覆盖/忽略/取消)的对话框
    16.1.3简单列表对话框
    16.1.4单选列表对话框
    16.1.5多选列表对话框
    16.1.6进度对话框
    16.1.7登录对话框
    16.1.8使用Activity托管对话框
    16.2Toast
    16.3通知(Notification)
    16.3.1在状态栏上显示通知信息
    16.3.2永久存在的Notification
    16.3.3自定义Notification
    16.4小结

    第17章封装UI和代码利器——Fragment
    17.1Fragment简介
    17.2什么时候使用Fragment
    17.3按照Fragment设计原则编写程序
    17.4Fragment的生命周期
    17.5创建Fragment
    17.5.1通过XML布局文件创建Fragment
    17.5.2通过Java代码创建Fragment
    17.5.3创建无UI的Fragment
    17.5.4在低版本Android中使用Fragment(SupportLibrary)
    17.6Activity与Fragment之间的交互
    17.6.1Fragment与Activity之间的交互
    17.6.2Fragment的回调机制
    17.7Fragment状态的持久化
    17.8Fragment与回退栈(导航)
    17.9FragmentManager与FragmentTransaction
    17.9.1管理Fragment事务
    17.9.2查找Fragment
    17.9.3跟踪回退栈状态
    17.9.4恢复历史状态
    17.9.5管理Fragment的状态
    17.9.6添加、删除和替换Fragment
    17.9.7分离(Detach)与附加(Attach)Fragment
    17.9.8显示和隐藏Fragment
    17.10Fragment扩展
    17.10.1ListFragment
    17.10.2DialogFragment
    17.10.3其他Fragment扩展类
    17.11Fragment模板源代码分析
    17.12小结

    第18章动作栏——ActionBar
    18.1ActionBar简介
    18.2ActionBar基础
    18.2.1隐藏/显示ActionBar
    18.2.2添加和响应Action按钮
    18.3可上下两分的ActionBar
    18.4应用程序图标导航
    18.5收缩和展开ActionView
    18.6ActionProvider
    18.6.1分享信息(ShareActionProvider)
    18.6.2定制ActionProvider
    18.7导航标签
    18.8下拉导航列表
    18.9小结

    第19章Android的拖放技术
    19.1Android中的拖放操作
    19.2拖放状态与拖放处理
    19.3拖动阴影
    19.4示例:拖动复制图像
    19.5小结

    第20章数据存储解决方案
    20.1读写key-value对:SharedPreferences
    20.2文件流操作
    20.2.1openFileOutput和openFileInput方法
    20.2.2读写SD卡中的文件
    20.3读写JSON格式的数据
    20.4SQLite数据库
    20.4.1SQLite数据库管理工具
    20.4.2SQLiteOpenHelper类与自动升级数据库
    20.4.3数据绑定与SimpleCursorAdapter类
    20.4.4操作SD卡上的数据库
    20.4.5将数据库与应用程序一起发布
    20.4.6内存数据库
    20.5小结

    第21章内容提供者(ContentProvider)
    21.1ContentProvider的作用
    21.2获得系统数据
    21.2.1读取联系人信息
    21.2.2查看收件箱的短信
    21.3自定义ContentProvider
    21.3.1查询城市信息
    21.3.2为ContentProvider添加访问权限
    21.4如何查找系统提供的ContentProvider
    21.5小结

    第22章广播接收器(BroadcastReceiver)
    22.1什么是广播
    22.2接收系统广播
    22.2.1短信拦截
    22.2.2用代码注册广播接收器
    22.2.3广播接收器的优先级
    22.2.4来去电拦截
    22.2.5截获屏幕休眠与唤醒
    22.2.6开机自动运行
    22.2.7显示手机电池的当前电量
    22.3发送广播
    22.4小结

    第23章服务(Service)
    23.1Service基础
    23.1.1Service的生命周期
    23.1.2开机启动Service
    23.2跨进程访问(AIDL服务)
    23.2.1什么是AIDL服务
    23.2.2建立AIDL服务的步骤
    23.2.3创建和调用AIDL服务
    23.2.4传递复杂数据的AIDL服务
    23.2.5AIDL与来去电自动挂断
    23.3小结

    第24章Android的组件开发
    24.1Android支持哪些组件开发方式
    24.2引用jar文件
    24.3跨工程引用
    24.4引用NDKLibrary
    24.5动态引用APK文件
    24.6动静结合的组件
    24.7脚本类型组件(JavaScript)与WebView控件
    24.8如何确定动态组件是否安装
    24.9升级动态组件
    24.10小结

    第25章Android的蓝牙开发技术
    25.1蓝牙简介
    25.2打开和关闭蓝牙设备
    25.3搜索蓝牙设备
    25.4蓝牙数据传输
    25.5蓝牙通信一定需要UUID吗
    25.6小结

    第26章近距离天线通信——NFC技术
    26.1NFC简介
    26.2NFC、蓝牙和红外之间的差异
    26.3NFC技术的未来前景
    26.4Android中的NFC技术
    26.4.1NDEF与非NDEF数据
    26.4.2NFC的三重过滤机制
    26.4.3开启Android的NFC功能
    26.4.4编写NFC程序的基本步骤
    26.5测试NFC程序需要的设备
    26.6让Android手机自动运行程序
    26.6.1向NFC标签写入数据的基本步骤
    26.6.2向NFC标签写入启动Android应用程序的消息
    26.7让Android手机自动打开网页
    26.8读写NFC标签中的文本
    26.8.1实现读写文本数据应用的基本思路
    26.8.2如何将NFC标签变成NDEF文本格式
    26.8.3NDEF文本格式解析
    26.8.4实现读写文本数据的Android应用程序
    26.9读写NFC标签中的Uri
    26.9.1NDEFUri格式解析
    26.9.2实现读写Uri的Android应用程序
    26.10利用NFC标签支持的数据格式进行过滤
    26.11处理任意NFC标签
    26.12读写非NDEF格式的数据
    26.13AndroidBeam技术与数据交互
    26.13.1传递NDEF消息
    26.13.2传输文件
    26.14小结

    第27章Android的网络开发技术
    27.1提交HTTPGET和HTTPPOST请求
    27.2HttpURLConnection类
    27.3上传文件
    27.4下载管理(DownloadManager)
    27.5Wi-FiDirect
    27.5.1Wi-FiDirectAPI的核心部分
    27.5.2创建监听Wi-FiDirect动作的广播接收器
    27.5.3注册广播接收器
    27.5.4发现Wi-FiDirect设备
    27.5.5连接Wi-FiDirect设备
    27.5.6数据传输
    27.6Internet电话(SIP)
    27.6.1使用SIP的要求和限制
    27.6.2配置Android版SIP电话
    27.6.3创建SipManager
    27.6.4注册SIP服务器
    27.6.5开始打电话
    27.6.6接听电话
    27.7小结

    第28章并发与定时器
    28.1Handler
    28.1.1更新UI
    28.1.2延迟执行
    28.2定时器
    28.2.1单秒循环的定时器:Chronometer
    28.2.2任意时间间隔的定时器:Timer
    28.2.3全局定时器:AlarmManager
    28.3AsyncTask
    28.4小结

    第29章异步装载(Loader)
    29.1Loader简介
    29.2Loader的核心类/接口
    29.3如何使用Loader
    29.3.1创建/重用Loader
    29.3.2遗弃旧的数据
    29.3.3LoaderManager与方法回调
    29.3.4创建Loader对象(onCreateLoader)
    29.3.5完成数据装载(onLoadFinished)
    29.3.6Loader被重置(onLoaderReset)
    29.4异步装载联系人(CursorLoader的应用)
    29.5小结

    第30章Android推送技术
    30.1IOS的推送方案
    30.2WindowsPhone的推送方案
    30.3Android的推送方案
    30.4第三方推送服务:极光推送
    30.5自己搭建推送服务器:AndroidPN
    30.6小结

    第31章Android的多媒体开发技术
    31.1音频
    31.1.1音频播放
    31.1.2录制音频
    31.2视频
    31.2.1播放视频
    31.2.2录制视频
    31.3相机
    31.3.1调用系统的拍照功能
    31.3.2自定义拍照功能
    31.4铃声
    31.5小结

    第32章Android的2D绘图
    32.1绘制基本的图形
    32.1.1绘制像素点
    32.1.2绘制直线
    32.1.3绘制圆形
    32.1.4绘制圆弧
    32.1.5绘制文本
    32.1.6示例:绘制基本的图形和文本
    32.2绘制位图
    32.2.1绘制Bitmap对象
    32.2.2使用Drawable.draw方法绘制位图
    32.2.3示例:用两种方式绘制位图
    32.3设置图像的透明度
    32.4旋转图像
    32.5小结

    第33章3D绘图之OpenGLES
    33.1OpenGLES简介
    33.2在3D空间中绘图
    33.2.1要绘制3D图形了,第一步要做什么
    33.2.2定义顶点
    33.2.3绘制三角形
    33.2.4三角形合并法绘制矩形
    33.2.5顶点法绘制矩形
    33.2.6顶点的选取顺序
    33.2.7索引法绘制矩形
    33.2.8基于OpenGLES的动画原理
    33.2.9旋转的矩形
    33.3视图
    33.3.1有趣的比喻:照相机拍照
    33.3.2模型变换:立方体旋转
    33.3.3用gluLookAt方法变换视图
    33.4颜色
    33.5小结

    第34章Android的桌面上的"尤物"
    34.1窗口小部件(AppWidget)
    34.1.1在Android桌面上添加AppWidget
    34.1.2开发AppWidget的步骤
    34.1.3数字时钟
    34.1.4AppWidgetProvider类
    34.1.5向AppWidget添加配置窗口
    34.1.6可以选择风格的数字时钟
    34.2动态壁纸(随机变换的圆圈)
    34.3小结

    第35章Android中的短信(SMS)与彩信(MMS)开发技术
    35.1通过系统程序发短信
    35.2直接发送短信
    35.3保存短信发送记录
    35.4监听短信和彩信
    35.5显示视频缩略图
    35.6彩信内容与SMIL协议
    35.7小结

    第36章Android的传感器开发技术
    36.1如何使用传感器
    36.2加速度传感器(Accelerometer)
    36.3重力传感器(Gravity)
    36.4光线传感器(Light)
    36.5陀螺仪传感器(Gyroscope)
    36.5方向传感器(Orientation)
    36.6其他传感器
    36.7小结

    第37章Android的全球定位系统(GPS)
    37.1GPS的核心API
    37.2获取位置提供者(LocationProvider)
    37.2.1获取所有可用的LocationProvider
    37.2.2根据名称获取LocationProvider
    37.2.3根据条件(Criteria)获取LocationProvider
    37.3实时获取GPS定位数据
    37.4测量地球上任意两点之间的距离
    37.5邻近警告
    37.6小结

    第38章谷歌地图(GoogleMap)开发应用
    38.1GoogleMap的跨平台解决方案:MapsJavaScriptAPIv3
    38.2GoogleMap的显示与定位
    38.3在GoogleMap上插入图像标志
    38.4插入多个图像标志
    38.5带阴影的位置坐标信息
    38.6地图与Java交互
    38.7小结

    第39章Android中的人机交互设计
    39.1手势(Gesture)
    39.1.1创建手势文件
    39.1.2通过手势输入字符串
    39.1.3通过手势调用程序
    39.1.4编写自己的手势创建器
    39.2多点触摸与放大/缩小操作
    39.3语音识别
    39.4让手机说话(TTS)
    39.5小结

    第40章Android中的输入法开发
    40.1Android输入法简介
    40.2控制输入法
    40.3输入法实战
    40.3.1实现输入法的步骤
    40.3.2编写输入法程序
    40.3.3输入法服务的生命周期
    40.3.4预输入文本
    40.3.5输入法设置
    40.4小结

    第41章AndroidNDK开发
    41.1AndroidNDK简介
    41.2安装、配置和测试NDK开发环境
    41.2.1系统和软件要求
    41.2.2下载和安装AndroidNDK
    41.2.3下载和安装Cygwin
    41.2.4配置AndroidNDK的开发环境
    41.3利用NDKSamples学习NDK开发
    41.3.1编译NDKSamples
    41.3.2NDK程序的结构与命名规则
    41.4AndroidNDK配置文件详解
    41.4.1AndroidNDK定义的变量
    41.4.2AndroidNDK定义的函数
    41.4.3描述模块的变量
    41.4.4配置Application.mk文件
    41.5第一个NDK示例:字母的大小写转换
    41.5.1编写NDK程序
    41.5.2编写调用NDK函数的Java程序
    41.5.3在Eclipse中开发和编译NDK程序
    41.6NDK程序读取Java字段值
    41.7小结

    第42章Android的测试驱动开发(TDD)
    42.1JUnit测试框架
    42.2测试Activity
    42.3测试ContentProvider
    42.4测试Service
    42.5测试普通类
    42.6小结

    第43章Android应用的性能优化
    43.1性能优化的基础知识
    43.2编写Java程序的最优化原则
    43.2.1用静态工厂方法代替构造方法
    43.2.2避免创建重复的对象
    43.2.3防止内存泄漏
    43.2.4返回零长度的集合而不是null
    43.2.5通过接口引用对象
    43.3避免ANR
    43.4执行时间测试
    43.5内存消耗测试
    43.6测试性能的工具:traceview
    43.7小结

    第44章游戏项目实战:笑脸连连看
    44.1游戏玩法
    44.2准备图像素材
    44.3实现主界面
    44.4随机生成连连看图像
    44.5选中两个相同图像后消失
    44.6用定时器限制游戏时间
    44.7小结

    第45章开源项目实战:NFC侠(NFCMan)
    45.1什么是NFCMan
    45.2用Android模拟器和非NFC设备测试NFC应用
    45.3NFCMan的实现原理
    45.4实现服务端程序(NFCMan)
    45.4.1可视化SWT开发环境
    45.4.2创建NFC标签
    45.4.3描述虚拟NFC标签的NFCTag类
    45.4.4保证虚拟NFC标签的全局唯一
    45.4.5显示与保存虚拟NFC标签
    45.4.6装载已经存在的虚拟NFC标签
    45.4.7开启服务
    45.4.8处理客户端请求
    45.4.9保证虚拟Android设备全局唯一
    45.4.10描述虚拟Android设备
    45.4.11添加虚拟Android设备
    45.4.12异常处理机制
    45.5客户端与服务端之间的数据管道(NFCManService)
    45.5.1与NFCMan交互(Socket方式)
    45.5.2与ANFCMan交互(广播方式)
    45.6客户端Library(ANFCMan)
    45.6.1ANFCMan的数据结构和异常类
    45.6.2ANFCMan的入口类
    45.6.3模拟检测到NFC标签的广播接收器
    45.6.4同时处理物理NFC标签和虚拟NFC标签的窗口
    45.7测试ANFCMan(TestANFCMan)
    45.8小结
  • 内容简介:
      《Android开发权威指南(第2版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。
      《Android开发权威指南(第2版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、ContentProvider和BroadcastReceiver)、布局、菜单、控件、资源和本地化、可视化UI设计、对话框、Toast和通知栏(Notification)、Fragment、ActionBar、拖放技术、数据存储技术、Android支持的各种组件技术、通信技术(蓝牙、NFC、网络等)、异步装载、推送技术、多媒体、2D绘图技术、OpenGLES、桌面小部件、动态壁纸、短信和彩信、传感器、GPS、谷歌地图、人机交互、输入法开发、AndroidNDK开发、测试驱动开发、性能优化等。
      《Android开发权威指南(第2版)》并不局限于介绍Android的各种理论知识,而是从“实战”的角度介绍开发技术。本书的所有示例都是精心设计的,足以使读者对当前讲解的理论知识驾轻就熟。这些示例中的很多例子都源于真实的项目,读者可以对这些示例的源程序稍加改动就可用于自己的项目中。本书除了为每一个知识点提供完整的示例外,最后还提供了两个完整的项目:笑脸连连看和NFC侠。这两个项目极具参考价值,尤其是NFC侠,是笔者维护的一个开源项目,用于在不支持NFC的手机或Android模拟器上开发和测试NFC应用。读者可以关注我的Blog来获得NFC侠以及本书的最新信息。
      本书适合有一定Java基础的读者阅读,如果读者已经掌握了Java的基本语法,那么本书将会成为您的首选和枕边书,您将从书中获得更多有价值的Android开发技术。
  • 作者简介:
    李宁,东北大学计算机专业硕士,IT讲师、技术顾问。拥有超过10年的软件开发经验。曾任某知名企业项目经理,国内最早的Android和iOS实践者之一,对Android和iOS有深入的研究。精通Java、C、C++、Objective—C等语言。eoeAndroid论坛版主、中国移动开发者社区Android专家。曾在《程序员》、IT168等媒体上发表150多篇技术文章。曾出版《Android开发权威指南》、《Android深度探索卷1:HAL与驱动开发》等畅销书。
  • 目录:
    第1章初识Android平台
    1.1Android简介
    1.2Android的制胜法宝
    1.3Android的版本发展历程
    1.3.1Android1.5(纸杯蛋糕)
    1.3.2Android1.6(甜甜圈)
    1.3.3Android2.1(松饼)
    1.3.4Android2.2(冻酸奶)
    1.3.5Android2.3(姜饼)
    1.3.6Android3.0(蜂巢)
    1.3.7Android4.0(冰激凌三明治)
    1.3.8Android4.1/4.2(果冻豆)
    1.4Android的系统架构
    1.5小结

    第2章搭建Android开发和测试环境
    2.1搭建Android开发环境需要些什么
    2.2安装Java开发环境
    2.2.1安装JDK
    2.2.2安装和配置Eclipse
    2.3安装Android开发环境
    2.3.1下载和安装AndroidSDK
    2.3.2下载和安装AndroidNDK
    2.3.3安装和配置Eclipse插件:ADT
    2.4配置Android测试环境
    2.4.1建立Android虚拟设备(AVD)
    2.4.2启动Android模拟器
    2.4.3安装真机测试环境
    2.5小结

    第3章第一个Android应用程序
    3.1从第一个Android程序中可以学到什么
    3.2建立Android工程
    3.3Android工程的结构
    3.4在窗口上放两个按钮
    3.5编写窗口类
    3.6修改字符串资源
    3.7运行Android应用程序
    3.8调试Android应用程序
    3.9签名Android应用程序
    3.10小结

    第4章Android应用程序架构
    4.1Android应用程序中的资源
    4.1.1资源存放在哪里
    4.1.2资源的基本使用方法
    4.2Android的应用程序组件
    4.2.1窗口(Activity)组件
    4.2.2服务(Service)组件
    4.2.3广播接收者(Broadcastreceivers)组件
    4.2.4内容提供者(ContentProvider)组件
    4.3AndroidManifest.xml文件的结构
    4.4小结

    第5章窗口(Activity)与视图(View)
    5.1声明和使用Activity
    5.1.1Activity的基本用法
    5.1.2同时适合手机和平板电脑的窗口风格
    5.2Activity的生命周期
    5.3窗口的常用事件
    5.3.1设置窗口标题事件(onTitleChanged)
    5.3.2键盘按下和抬起事件(onKeyDown和onKeyUp)
    5.3.3任意情况下捕捉键盘事件(dispatchKeyEvent)
    5.3.4回退事件(onBackPressed)
    5.3.5按键长按事件(onKeyLongPress)
    5.3.6屏幕触摸事件(onTouchEvent)
    5.3.7窗口获得焦点事件(onWindowFocusChanged)
    5.4在不同Activity之间传递数据
    5.4.1使用Intent传递数据
    5.4.2使用静态变量传递数据
    5.4.3使用剪贴板传递数据
    5.4.4使用全局对象传递数据
    5.5从Activity返回数据
    5.6视图(View)
    5.6.1视图简介
    5.6.2使用XML布局文件定义视图
    5.6.3在代码中控制视图
    5.7显示系统窗口
    5.7.1直接拨号
    5.7.2将电话号传入拨号程序
    5.7.3调用拨号程序
    5.7.4浏览网页
    5.7.5查看联系人
    5.7.6显示系统设置界面(设置主界面、Wi-Fi设置界面)
    5.7.7启动处理音频的程序
    5.7.8回到Home窗口(相当于按Home键)
    5.8与Activity相关的技巧与特效
    5.8.1全屏显示(隐藏标题栏和状态栏)
    5.8.2定制窗口标题栏
    5.8.3为程序添加Splash
    5.8.4改变窗口大小、位置和透明度
    5.8.5按两次关闭窗口
    5.8.6关闭所有的窗口
    5.8.7窗口截屏
    5.9小结

    第6章Intent与IntentFilter
    6.1Android系统的信使:Intent
    6.2Intent对象
    6.2.1Intent对象可以封装和传递哪些信息
    6.2.2组件名(Componentname)
    6.2.3动作(Action)
    6.2.4种类(Category)
    6.2.5数据(Data)
    6.2.6附加数据(Extra)
    6.2.7标志(Flags)
    6.3显式和隐式访问窗口
    6.4跨应用程序访问窗口
    6.5Android系统的过滤机制大揭秘
    6.5.1过滤条件的设置
    6.5.2过滤器的筛选规则
    6.5.3示例:过滤机制应用演示
    6.6Android源代码与过滤器
    6.6.1系统内置程序有哪些窗口可以利用
    6.6.2显示计算器(Calculator)
    6.6.3用浏览器(Browser)显示网页
    6.6.4拨打电话(Phone)与授权
    6.7获取第三方程序中可调用的窗口
    6.8传递附加数据(Extra)
    6.9解析数据
    6.10小结

    第7章窗口(Activity)高级技术
    7.1ActivityXML属性详解
    7.1.1设置Activity的基本信息
    7.1.2屏幕方向切换(android:screenOrientation)
    7.1.3阻止Activity销毁和重建(android:configChanges)
    7.1.4允许Activity被实例化(android:enabled)
    7.1.5在最近应用列表中显示(android:excludeFromRecents)
    7.1.6允许其他程序访问当前窗口(android:exported)
    7.1.7硬件加速(android:hardwareAccelerated)
    7.1.8在多进程中创建窗口实例(android:multiprocess)
    7.1.9无法返回的Activity(android:noHistory)
    7.1.10指定要返回的窗口(android:parentActivityName)
    7.1.11使窗口受到权限的保护(android:permission)
    7.1.12改变窗口所在的进程(android:process)
    7.1.13不保存窗口的状态(android:stateNotNeeded)
    7.1.14窗口的主题(android:theme)
    7.1.15扩展窗口UI(android:uiOptions)
    7.1.16设置输入法显示模式(android:windowSoftInputMode)
    7.2深入探索Activity从创建到销毁的过程
    7.2.1任务(Task)与回退栈(BackStack)
    7.2.2保存窗口(Activity)状态
    7.2.3管理任务和回退栈
    7.2.4Activity的4种创建模式
    7.2.5用Java代码设置窗口创建模式
    7.2.6窗口的乾坤大挪移(affinity)
    7.2.7销毁不再使用的窗口
    7.3Activity的别名
    7.4小结

    第8章布局
    8.1Android的五大布局
    8.1.1框架布局(FrameLayout)
    8.1.2线性布局(LinearLayout)
    8.1.3相对布局(RelativeLayout)
    8.1.4表格布局(TableLayout)
    8.1.5绝对布局(AbsoluteLayout)
    8.2属性资源与Android命名空间
    8.3布局属性
    8.4布局高级技术
    8.4.1布局别名
    8.4.2重用布局
    8.4.3优化布局
    8.4.4动态装载布局
    8.4.5动态设置布局属性
    8.4.6从右到左布局(RTLLayout)
    8.5小结

    第9章菜单
    9.1菜单的基本用法
    9.1.1创建选项菜单(OptionsMenu)
    9.1.2关联Activity
    9.1.3响应菜单的单击动作
    9.1.4动态添加、修改和删除选项菜单
    9.1.5带复选框和选项按钮的子菜单
    9.1.6上下文菜单
    9.1.7菜单事件
    9.1.8从菜单资源中装载菜单
    9.2菜单特效
    9.2.1自定义菜单
    9.2.2模拟UCWeb菜单效果
    9.3小结

    第10章Android的资源详解(一)
    10.1创建资源
    10.1.1手工创建资源文件
    10.1.2用ADT模板创建本地化图标资源
    10.1.3用ADT模板创建XML文件资源
    10.2使用资源
    10.2.1生成资源类文件(R.java)
    10.2.2从XML文件中访问资源
    10.2.3使用Java代码访问资源
    10.2.4Java反射技术与枚举资源
    10.3字符串(String)资源
    10.3.1普通字符串
    10.3.2字符串数组
    10.3.3复数字符串
    10.3.4在字符串中使用引号
    10.3.5用占位符格式化字符串
    10.3.6用HTML标签格式化字符串资源
    10.4值(values)资源
    10.4.1整数(Integer)资源
    10.4.2尺寸(Dimension)资源
    10.4.3布尔(Boolean)资源
    10.4.4颜色(Color)资源
    10.4.5ID资源
    10.4.6整数数组(Integer-Array)资源
    10.4.7类型数组(Typed-Array)资源
    10.5菜单(menu)资源
    10.6图像(drawable)资源
    10.6.1普通图像资源
    10.6.2XML图像资源
    10.6.3Nine-Patch图像资源
    10.6.4XMLNine-Patch图像资源
    10.6.5图层(Layer)资源
    10.6.6图像状态(State)资源
    10.6.7图像级别(Level)资源
    10.6.8淡入淡出(Cross-fade)资源
    10.6.9嵌入(Inset)图像资源
    10.6.10剪切(Clip)图像资源
    10.6.11外形(Shape)资源
    10.7小结

    第11章Android的资源详解(二)
    11.1动画资源
    11.1.1属性(Property)动画
    11.1.2帧(Frame)动画
    11.1.3移动补间(TranslateTween)动画
    11.1.4循环向右移动的EditText与上下弹跳的球
    11.1.5缩放补间(ScaleTween)动画
    11.1.6跳动的心
    11.1.7旋转补间(RotateTween)动画
    11.1.8旋转的星系
    11.1.9透明度补间(AlphaTween)动画
    11.1.10投掷炸弹
    11.1.11震动渲染器(ShakeInterpolator)
    11.1.12自定义渲染器(Interpolator)
    11.2风格(Style)资源与主题(Theme)
    11.3小结

    第12章资源的本地化
    12.1建立本地化的资源目录
    12.2资源目录的命名规则
    12.3建立别名资源
    12.3.1图像别名资源
    12.3.2布局别名资源
    12.3.3字符串别名资源
    12.3.4其他简单值别名资源
    12.4资源目录的优先级
    12.5屏幕适配
    12.5.1屏幕适配要考虑的因素
    12.5.2适配不同屏幕可以采用的规则
    12.5.3屏幕尺寸和屏幕密度
    12.5.4位置、尺寸和字体应使用屏幕密度单位
    12.5.5与屏幕适配有关的标识符
    12.5.6影响屏幕适配的重要因素:布局和图像
    12.5.7典型的屏幕适配案例
    12.5.8在GooglePlay上限制屏幕尺寸和屏幕密度
    12.5.9在Android模拟器上测试各种屏幕尺寸和密度
    12.6小结

    第13章Android的控件详解(一)
    13.1显示文本的控件(TextView)
    13.1.1显示富文本(URL、不同大小、字体、颜色的文本)
    13.1.2用标签在TextView控件上显示图像
    13.1.3单击链接弹出Activity
    13.1.4为指定文本添加背景
    13.2编辑文本的控件(EditText)
    13.2.1像QQ一样输入表情图像
    13.2.2在EditText中输入特定的字符
    13.2.3AutoCompleteTextView(自动完成输入内容的控件)
    13.3按钮(Button)和复选框(Checkbox)控件
    13.3.1Button(普通按钮控件)
    13.3.2图文混排的按钮
    13.3.3ImageButton(图像按钮控件)
    13.3.4RadioButton(选项按钮控件)
    13.3.5ToggleButton(开关状态按钮控件)
    13.3.6CheckBox(复选框控件)
    13.4图像控件(ImageView)
    13.4.1ImageView控件的基本用法
    13.4.2显示指定区域的图像
    13.4.3缩放和旋转图像
    13.5时间与日期控件
    13.5.1DatePicker(输入日期的控件)
    13.5.2TimePicker(输入时间的控件)
    13.5.3DatePicker、TimePicker与TextView同步显示日期和时间
    13.5.4AnalogClock和DigitalClock(显示时钟的控件)
    13.6小结

    第14章Android的控件详解(二)
    14.1进度条控件
    14.1.1ProgressBar(进度条控件)
    14.1.2SeekBar(拖动条控件)
    14.1.3设置ProgressBar和SeekBar的颜色及背景图
    14.1.4RatingBar(评分控件)
    14.2列表控件
    14.2.1ListView(普通列表控件)
    14.2.2为ListView列表项添加复选框和选项按钮
    14.2.3对列表项进行增、删、改操作
    14.2.4改变列表项的背景色
    14.2.5ListActivity(封装ListView的Activity)
    14.2.6ExpandableListView(可扩展的列表控件)
    14.2.7Spinner(下拉列表控件)
    14.3GridView(网格控件)
    14.4TabHost(标签控件)
    14.5ViewStub(惰性装载控件)
    14.6小结

    第15章可视化UI设计
    15.1拖放控件
    15.2设置视图属性
    15.3预览各种屏幕尺寸
    15.4语言和地区的本地化测试
    15.5其他可视化功能
    15.6小结

    第16章对话框、Toast与通知栏(Notification)
    16.1对话框
    16.1.1带2个按钮(确认/取消)的对话框
    16.1.2带3个按钮(覆盖/忽略/取消)的对话框
    16.1.3简单列表对话框
    16.1.4单选列表对话框
    16.1.5多选列表对话框
    16.1.6进度对话框
    16.1.7登录对话框
    16.1.8使用Activity托管对话框
    16.2Toast
    16.3通知(Notification)
    16.3.1在状态栏上显示通知信息
    16.3.2永久存在的Notification
    16.3.3自定义Notification
    16.4小结

    第17章封装UI和代码利器——Fragment
    17.1Fragment简介
    17.2什么时候使用Fragment
    17.3按照Fragment设计原则编写程序
    17.4Fragment的生命周期
    17.5创建Fragment
    17.5.1通过XML布局文件创建Fragment
    17.5.2通过Java代码创建Fragment
    17.5.3创建无UI的Fragment
    17.5.4在低版本Android中使用Fragment(SupportLibrary)
    17.6Activity与Fragment之间的交互
    17.6.1Fragment与Activity之间的交互
    17.6.2Fragment的回调机制
    17.7Fragment状态的持久化
    17.8Fragment与回退栈(导航)
    17.9FragmentManager与FragmentTransaction
    17.9.1管理Fragment事务
    17.9.2查找Fragment
    17.9.3跟踪回退栈状态
    17.9.4恢复历史状态
    17.9.5管理Fragment的状态
    17.9.6添加、删除和替换Fragment
    17.9.7分离(Detach)与附加(Attach)Fragment
    17.9.8显示和隐藏Fragment
    17.10Fragment扩展
    17.10.1ListFragment
    17.10.2DialogFragment
    17.10.3其他Fragment扩展类
    17.11Fragment模板源代码分析
    17.12小结

    第18章动作栏——ActionBar
    18.1ActionBar简介
    18.2ActionBar基础
    18.2.1隐藏/显示ActionBar
    18.2.2添加和响应Action按钮
    18.3可上下两分的ActionBar
    18.4应用程序图标导航
    18.5收缩和展开ActionView
    18.6ActionProvider
    18.6.1分享信息(ShareActionProvider)
    18.6.2定制ActionProvider
    18.7导航标签
    18.8下拉导航列表
    18.9小结

    第19章Android的拖放技术
    19.1Android中的拖放操作
    19.2拖放状态与拖放处理
    19.3拖动阴影
    19.4示例:拖动复制图像
    19.5小结

    第20章数据存储解决方案
    20.1读写key-value对:SharedPreferences
    20.2文件流操作
    20.2.1openFileOutput和openFileInput方法
    20.2.2读写SD卡中的文件
    20.3读写JSON格式的数据
    20.4SQLite数据库
    20.4.1SQLite数据库管理工具
    20.4.2SQLiteOpenHelper类与自动升级数据库
    20.4.3数据绑定与SimpleCursorAdapter类
    20.4.4操作SD卡上的数据库
    20.4.5将数据库与应用程序一起发布
    20.4.6内存数据库
    20.5小结

    第21章内容提供者(ContentProvider)
    21.1ContentProvider的作用
    21.2获得系统数据
    21.2.1读取联系人信息
    21.2.2查看收件箱的短信
    21.3自定义ContentProvider
    21.3.1查询城市信息
    21.3.2为ContentProvider添加访问权限
    21.4如何查找系统提供的ContentProvider
    21.5小结

    第22章广播接收器(BroadcastReceiver)
    22.1什么是广播
    22.2接收系统广播
    22.2.1短信拦截
    22.2.2用代码注册广播接收器
    22.2.3广播接收器的优先级
    22.2.4来去电拦截
    22.2.5截获屏幕休眠与唤醒
    22.2.6开机自动运行
    22.2.7显示手机电池的当前电量
    22.3发送广播
    22.4小结

    第23章服务(Service)
    23.1Service基础
    23.1.1Service的生命周期
    23.1.2开机启动Service
    23.2跨进程访问(AIDL服务)
    23.2.1什么是AIDL服务
    23.2.2建立AIDL服务的步骤
    23.2.3创建和调用AIDL服务
    23.2.4传递复杂数据的AIDL服务
    23.2.5AIDL与来去电自动挂断
    23.3小结

    第24章Android的组件开发
    24.1Android支持哪些组件开发方式
    24.2引用jar文件
    24.3跨工程引用
    24.4引用NDKLibrary
    24.5动态引用APK文件
    24.6动静结合的组件
    24.7脚本类型组件(JavaScript)与WebView控件
    24.8如何确定动态组件是否安装
    24.9升级动态组件
    24.10小结

    第25章Android的蓝牙开发技术
    25.1蓝牙简介
    25.2打开和关闭蓝牙设备
    25.3搜索蓝牙设备
    25.4蓝牙数据传输
    25.5蓝牙通信一定需要UUID吗
    25.6小结

    第26章近距离天线通信——NFC技术
    26.1NFC简介
    26.2NFC、蓝牙和红外之间的差异
    26.3NFC技术的未来前景
    26.4Android中的NFC技术
    26.4.1NDEF与非NDEF数据
    26.4.2NFC的三重过滤机制
    26.4.3开启Android的NFC功能
    26.4.4编写NFC程序的基本步骤
    26.5测试NFC程序需要的设备
    26.6让Android手机自动运行程序
    26.6.1向NFC标签写入数据的基本步骤
    26.6.2向NFC标签写入启动Android应用程序的消息
    26.7让Android手机自动打开网页
    26.8读写NFC标签中的文本
    26.8.1实现读写文本数据应用的基本思路
    26.8.2如何将NFC标签变成NDEF文本格式
    26.8.3NDEF文本格式解析
    26.8.4实现读写文本数据的Android应用程序
    26.9读写NFC标签中的Uri
    26.9.1NDEFUri格式解析
    26.9.2实现读写Uri的Android应用程序
    26.10利用NFC标签支持的数据格式进行过滤
    26.11处理任意NFC标签
    26.12读写非NDEF格式的数据
    26.13AndroidBeam技术与数据交互
    26.13.1传递NDEF消息
    26.13.2传输文件
    26.14小结

    第27章Android的网络开发技术
    27.1提交HTTPGET和HTTPPOST请求
    27.2HttpURLConnection类
    27.3上传文件
    27.4下载管理(DownloadManager)
    27.5Wi-FiDirect
    27.5.1Wi-FiDirectAPI的核心部分
    27.5.2创建监听Wi-FiDirect动作的广播接收器
    27.5.3注册广播接收器
    27.5.4发现Wi-FiDirect设备
    27.5.5连接Wi-FiDirect设备
    27.5.6数据传输
    27.6Internet电话(SIP)
    27.6.1使用SIP的要求和限制
    27.6.2配置Android版SIP电话
    27.6.3创建SipManager
    27.6.4注册SIP服务器
    27.6.5开始打电话
    27.6.6接听电话
    27.7小结

    第28章并发与定时器
    28.1Handler
    28.1.1更新UI
    28.1.2延迟执行
    28.2定时器
    28.2.1单秒循环的定时器:Chronometer
    28.2.2任意时间间隔的定时器:Timer
    28.2.3全局定时器:AlarmManager
    28.3AsyncTask
    28.4小结

    第29章异步装载(Loader)
    29.1Loader简介
    29.2Loader的核心类/接口
    29.3如何使用Loader
    29.3.1创建/重用Loader
    29.3.2遗弃旧的数据
    29.3.3LoaderManager与方法回调
    29.3.4创建Loader对象(onCreateLoader)
    29.3.5完成数据装载(onLoadFinished)
    29.3.6Loader被重置(onLoaderReset)
    29.4异步装载联系人(CursorLoader的应用)
    29.5小结

    第30章Android推送技术
    30.1IOS的推送方案
    30.2WindowsPhone的推送方案
    30.3Android的推送方案
    30.4第三方推送服务:极光推送
    30.5自己搭建推送服务器:AndroidPN
    30.6小结

    第31章Android的多媒体开发技术
    31.1音频
    31.1.1音频播放
    31.1.2录制音频
    31.2视频
    31.2.1播放视频
    31.2.2录制视频
    31.3相机
    31.3.1调用系统的拍照功能
    31.3.2自定义拍照功能
    31.4铃声
    31.5小结

    第32章Android的2D绘图
    32.1绘制基本的图形
    32.1.1绘制像素点
    32.1.2绘制直线
    32.1.3绘制圆形
    32.1.4绘制圆弧
    32.1.5绘制文本
    32.1.6示例:绘制基本的图形和文本
    32.2绘制位图
    32.2.1绘制Bitmap对象
    32.2.2使用Drawable.draw方法绘制位图
    32.2.3示例:用两种方式绘制位图
    32.3设置图像的透明度
    32.4旋转图像
    32.5小结

    第33章3D绘图之OpenGLES
    33.1OpenGLES简介
    33.2在3D空间中绘图
    33.2.1要绘制3D图形了,第一步要做什么
    33.2.2定义顶点
    33.2.3绘制三角形
    33.2.4三角形合并法绘制矩形
    33.2.5顶点法绘制矩形
    33.2.6顶点的选取顺序
    33.2.7索引法绘制矩形
    33.2.8基于OpenGLES的动画原理
    33.2.9旋转的矩形
    33.3视图
    33.3.1有趣的比喻:照相机拍照
    33.3.2模型变换:立方体旋转
    33.3.3用gluLookAt方法变换视图
    33.4颜色
    33.5小结

    第34章Android的桌面上的"尤物"
    34.1窗口小部件(AppWidget)
    34.1.1在Android桌面上添加AppWidget
    34.1.2开发AppWidget的步骤
    34.1.3数字时钟
    34.1.4AppWidgetProvider类
    34.1.5向AppWidget添加配置窗口
    34.1.6可以选择风格的数字时钟
    34.2动态壁纸(随机变换的圆圈)
    34.3小结

    第35章Android中的短信(SMS)与彩信(MMS)开发技术
    35.1通过系统程序发短信
    35.2直接发送短信
    35.3保存短信发送记录
    35.4监听短信和彩信
    35.5显示视频缩略图
    35.6彩信内容与SMIL协议
    35.7小结

    第36章Android的传感器开发技术
    36.1如何使用传感器
    36.2加速度传感器(Accelerometer)
    36.3重力传感器(Gravity)
    36.4光线传感器(Light)
    36.5陀螺仪传感器(Gyroscope)
    36.5方向传感器(Orientation)
    36.6其他传感器
    36.7小结

    第37章Android的全球定位系统(GPS)
    37.1GPS的核心API
    37.2获取位置提供者(LocationProvider)
    37.2.1获取所有可用的LocationProvider
    37.2.2根据名称获取LocationProvider
    37.2.3根据条件(Criteria)获取LocationProvider
    37.3实时获取GPS定位数据
    37.4测量地球上任意两点之间的距离
    37.5邻近警告
    37.6小结

    第38章谷歌地图(GoogleMap)开发应用
    38.1GoogleMap的跨平台解决方案:MapsJavaScriptAPIv3
    38.2GoogleMap的显示与定位
    38.3在GoogleMap上插入图像标志
    38.4插入多个图像标志
    38.5带阴影的位置坐标信息
    38.6地图与Java交互
    38.7小结

    第39章Android中的人机交互设计
    39.1手势(Gesture)
    39.1.1创建手势文件
    39.1.2通过手势输入字符串
    39.1.3通过手势调用程序
    39.1.4编写自己的手势创建器
    39.2多点触摸与放大/缩小操作
    39.3语音识别
    39.4让手机说话(TTS)
    39.5小结

    第40章Android中的输入法开发
    40.1Android输入法简介
    40.2控制输入法
    40.3输入法实战
    40.3.1实现输入法的步骤
    40.3.2编写输入法程序
    40.3.3输入法服务的生命周期
    40.3.4预输入文本
    40.3.5输入法设置
    40.4小结

    第41章AndroidNDK开发
    41.1AndroidNDK简介
    41.2安装、配置和测试NDK开发环境
    41.2.1系统和软件要求
    41.2.2下载和安装AndroidNDK
    41.2.3下载和安装Cygwin
    41.2.4配置AndroidNDK的开发环境
    41.3利用NDKSamples学习NDK开发
    41.3.1编译NDKSamples
    41.3.2NDK程序的结构与命名规则
    41.4AndroidNDK配置文件详解
    41.4.1AndroidNDK定义的变量
    41.4.2AndroidNDK定义的函数
    41.4.3描述模块的变量
    41.4.4配置Application.mk文件
    41.5第一个NDK示例:字母的大小写转换
    41.5.1编写NDK程序
    41.5.2编写调用NDK函数的Java程序
    41.5.3在Eclipse中开发和编译NDK程序
    41.6NDK程序读取Java字段值
    41.7小结

    第42章Android的测试驱动开发(TDD)
    42.1JUnit测试框架
    42.2测试Activity
    42.3测试ContentProvider
    42.4测试Service
    42.5测试普通类
    42.6小结

    第43章Android应用的性能优化
    43.1性能优化的基础知识
    43.2编写Java程序的最优化原则
    43.2.1用静态工厂方法代替构造方法
    43.2.2避免创建重复的对象
    43.2.3防止内存泄漏
    43.2.4返回零长度的集合而不是null
    43.2.5通过接口引用对象
    43.3避免ANR
    43.4执行时间测试
    43.5内存消耗测试
    43.6测试性能的工具:traceview
    43.7小结

    第44章游戏项目实战:笑脸连连看
    44.1游戏玩法
    44.2准备图像素材
    44.3实现主界面
    44.4随机生成连连看图像
    44.5选中两个相同图像后消失
    44.6用定时器限制游戏时间
    44.7小结

    第45章开源项目实战:NFC侠(NFCMan)
    45.1什么是NFCMan
    45.2用Android模拟器和非NFC设备测试NFC应用
    45.3NFCMan的实现原理
    45.4实现服务端程序(NFCMan)
    45.4.1可视化SWT开发环境
    45.4.2创建NFC标签
    45.4.3描述虚拟NFC标签的NFCTag类
    45.4.4保证虚拟NFC标签的全局唯一
    45.4.5显示与保存虚拟NFC标签
    45.4.6装载已经存在的虚拟NFC标签
    45.4.7开启服务
    45.4.8处理客户端请求
    45.4.9保证虚拟Android设备全局唯一
    45.4.10描述虚拟Android设备
    45.4.11添加虚拟Android设备
    45.4.12异常处理机制
    45.5客户端与服务端之间的数据管道(NFCManService)
    45.5.1与NFCMan交互(Socket方式)
    45.5.2与ANFCMan交互(广播方式)
    45.6客户端Library(ANFCMan)
    45.6.1ANFCMan的数据结构和异常类
    45.6.2ANFCMan的入口类
    45.6.3模拟检测到NFC标签的广播接收器
    45.6.4同时处理物理NFC标签和虚拟NFC标签的窗口
    45.7测试ANFCMan(TestANFCMan)
    45.8小结
查看详情
12
相关图书 / 更多
Android开发权威指南
Animate 2022二维动画制作案例教程(全视频微课版)
董佳佳、程远、金洪宇
Android开发权威指南
Android性能优化入门与实战
张世欣(拭心)
Android开发权威指南
Android图形显示系统
李先儒
Android开发权威指南
Animate CC 动画制作案例教程(第2版)
刘鹏程
Android开发权威指南
Android积木式编程开发:AppInventor2018离线中文版(第2版)
刘载兴、张燕燕 编
Android开发权威指南
Anisha Accidental Detective
Serena Patel 著;Emma McCann 绘
Android开发权威指南
Android自动化测试实战:Python+Appium +unittest
Storm 梁培峰
Android开发权威指南
AnEssayonthePrincipleofPopulationandOthe
Malthus, Thomas
Android开发权威指南
Android移动应用基础教程(Android Studio)(第3版)
黑马程序员
Android开发权威指南
Ansys Workbench 2022中文版有限元分析从入门到精通
CAD/CAM/CAE技术联盟
Android开发权威指南
Animate 2022中文版入门与提高
胡仁喜、王昌盛、李华
Android开发权威指南
Ansys Fluent中文版流场分析从入门到精通
曾建邦 单丰武