百道网
 您现在的位置:Fun书 > 疯狂Android讲义 (Kotlin版)
疯狂Android讲义 (Kotlin版)


疯狂Android讲义 (Kotlin版)

作  者:李刚 著

出 版 社:电子工业出版社

出版时间:2018年06月

定  价:108.00

I S B N :9787121342370

所属分类: 专业科技  >  计算机/网络  >  移动开发    

标  签:

[查看微博评论]

分享到:

TOP内容简介

本书是《疯狂Android讲义》的Koltin版,基于《疯狂Android讲义(第3版)》升级而来。本书基于最新的Android 8.0,并采用了Google推荐的IDE:Android Studio作为开发工具,书中每个案例、每个截图都全面升级到Android 8.0。本书全面地介绍了Android应用开发的相关知识,全书内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android整合RESTful服务端、传感器应用开发、GPS应用开发、整合第三方Map服务等。本书并不局限于介绍Android编程的各种理论知识,而是从“项目驱动”的角度来讲授理论。全书一共包括近百个实例,这些示范性的实例既可帮读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考、拿来就用。本书最后还提供了两个实用的案例:合金弹头和电子拍卖系统Android客户端(基于主流的RESTful服务端),具有极高的参考价值。本书提供了配套的答疑网站,如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。


TOP作者简介

多年来从事Java开发、移动开发等方面的培训与研发工作,承接大型研发项目,有多款商用APP在Apple Store及Android市场上线。


TOP目录

第1章 Android应用和开发环境1

1.1 Android的发展和历史2

1.1.1 Android的发展和简介2

1.1.2 Android 8.x平台架构及特性3

1.2 使用Gradle自动化构建项目5

1.2.1 下载和安装Gradle5

1.2.2 Gradle构建文件和创建任务6

1.2.3 Gradle的属性定义11

1.2.4 增量式构建14

1.2.5 Gradle插件和java、application等插件15

1.2.6 依赖管理17

1.2.7 自定义任务20

1.2.8 自定义插件22

1.3 搭建Android开发环境24

1.3.1 安装Android Studio24

1.3.2 下载和安装Android SDK29

1.3.3 安装过程中常见的错误31

1.3.4 安装运行、调试环境32

1.4 Android常用开发工具的用法39

1.4.1 使用Monitor进行调试39

1.4.2 Android Debug Bridge的用法41

1.4.3 使用mksdcard管理虚拟SD卡42

1.5 开始第一个Android应用42

1.5.1 使用Android Studio开发第一个Android应用42

1.5.2 通过Android Studio运行Android应用45

1.6 Android应用结构分析46

1.6.1 Android项目结构分析47

1.6.2 自动生成的R.java49

1.6.3 res目录说明50

1.6.4 Android应用的清单文件:AndroidManifest.xml51

1.6.5 应用程序权限说明52

1.7 Android应用的基本组件介绍53

1.7.1 Activity和View53

1.7.2 Service53

1.7.3 BroadcastReceiver54

1.7.4 ContentProvider54

1.7.5 Intent和IntentFilter54

1.8 使用Android 8的签名APK55

1.8.1 使用Android Studio对Android应用签名56

1.8.2 使用Android 8的命令对APK签名57

1.9 本章小结58

第2章 Android应用的界面编程59

2.1 界面编程与视图(View)组件60

2.1.1 视图组件与容器组件60

2.1.2 使用XML布局文件控制UI界面66

2.1.3 在代码中控制UI界面66

实例:用编程的方式开发UI界面66

2.1.4 使用XML布局文件和代码混合控制UI界面67

实例:简单图片浏览器68

2.1.5 开发自定义View69

实例:跟随手指的小球70

2.2 第1组UI组件:布局管理器72

2.2.1 线性布局73

2.2.2 表格布局74

实例:丰富的表格布局75

2.2.3 帧布局77

实例:霓虹灯效果79

2.2.4 相对布局80

实例:梅花布局效果81

2.2.5 网格布局82

实例:计算器界面83

2.2.6 绝对布局84

2.2.7 Android 8的约束布局85

2.3 第2组UI组件:TextView及其子类89

2.3.1 文本框(TextView)和编辑框(EditText)的功能与用法89

实例:功能丰富的文本框93

2.3.2 EditText的功能与用法95

2.3.3 按钮(Button)组件的功能与用法95

实例:按钮、圆形按钮、带文字的图片按钮96

2.3.4 使用9Patch图片作为背景97

2.3.5 单选钮(RadioButton)和复选框(CheckBox)的功能与用法98

实例:利用单选钮、复选框获取用户信息98

2.3.6 状态开关按钮(ToggleButton)和开关(Switch)的功能与用法100

实例:动态控制布局101

2.3.7 时钟(AnalogClock和TextClock)的功能与用法102

实例:手机里的“劳力士”103

2.3.8 计时器(Chronometer)104

2.4 第3组UI组件:ImageView及其子类104

实例:图片浏览器106

实例:强大的图片按钮108

实例:使用QuickContactBadge关联联系人109

2.5 第4组UI组件:AdapterView及子类111

2.5.1 列表视图(ListView)和ListActivity111

实例:改变分隔条、基于数组的ListView112

2.5.2 Adapter接口及实现类113

实例:使用ArrayAdapter创建ListView114

实例:使用SimpleAdapter创建ListView116

实例:扩展BaseAdapter实现不存储列表项的ListView119

2.5.3 自动完成文本框(AutoCompleteTextView)的功能与用法120

2.5.4 网格视图(GridView)的功能与用法122

实例:带预览的图片浏览器123

2.5.5 可展开的列表组件(ExpandableListView)125

2.5.6 Spinner的功能与用法128

2.5.7 AdapterViewFlipper的功能与用法129

实例:自动播放的图片库129

2.5.8 StackView的功能与用法132

实例:叠在一起的图片132

2.6 第5组UI组件:ProgressBar及其子类134

2.6.1 进度条(ProgressBar)的功能与用法134

2.6.2 拖动条(SeekBar)的功能与用法137

实例:通过拖动滑块来改变图片的透明度138

2.6.3 星级评分条(RatingBar)的功能与用法139

实例:通过星级改变图片的透明度139

2.7 第6组UI组件:ViewAnimator及其子类140

2.7.1 ViewSwitcher的功能与用法141

实例:仿Android系统的Launcher界面141

2.7.2 图像切换器(ImageSwitcher)的功能与用法145

实例:支持动画的图片浏览器145

2.7.3 文本切换器(TextSwitcher)的功能与用法147

2.7.4 ViewFlipper的功能与用法147

实例:自动播放的图片库148

2.8 各种杂项组件149

2.8.1 使用Toast显示提示信息框150

实例:带图片的消息提示150

2.8.2 日历视图(CalendarView)组件的功能与用法151

实例:选择您的生日152

2.8.3 日期、时间选择器(DatePicker和TimePicker)的功能与用法153

实例:用户选择日期、时间154

2.8.4 数值选择器(NumberPicker)的功能与用法156

实例:选择您意向的价格范围156

2.8.5 搜索框(SearchView)的功能与用法157

实例:搜索158

2.8.6 选项卡(TabHost)的功能和用法159

2.8.7 滚动视图(ScrollView)的功能与用法160

实例:可垂直和水平滚动的视图160

2.8.8 Android 8的通知和通知Channel161

实例:加薪通知162

2.9 第7组UI组件:对话框164

2.9.1 使用AlertDialog创建对话框164

实例:显示提示消息的对话框165

实例:简单列表项对话框166

实例:单选列表项对话框166

实例:多选列表项对话框167

实例:自定义列表项对话框168

实例:自定义View对话框168

2.9.2 对话框风格的窗口169

2.9.3 使用PopupWindow170

2.9.4 使用DatePickerDialog、TimePickerDialog171

2.9.5 使用ProgressDialog创建进度对话框172

2.10 菜单173

2.10.1 选项菜单和子菜单(SubMenu)173

2.10.2 使用监听器来监听菜单事件176

2.10.3 创建多选菜单项和单选菜单项176

2.10.4 设置与菜单项关联的Activity177

2.10.5 上下文菜单178

2.10.6 使用XML文件定义菜单179

实例:使用XML资源文件定义菜单180

2.10.7 使用PopupMenu创建弹出式菜单183

2.11 使用活动条(ActionBar)184

2.11.1 启用ActionBar184

2.11.2 使用ActionBar显示选项菜单项185

2.11.3 启用程序图标导航187

2.11.4 添加Action View189

实例:“标题”上的时钟189

2.11.5 使用ActionBar实现Tab导航189

实例:ActionBar结合Fragment实现Tab导航190

2.11.6 使用ActionBar实现下拉式导航192

实例:ActionBar结合Fragment实现下拉式导航192

2.12 本章小结194

第3章 Android的事件机制195

3.1 Android事件处理概述196

3.2 基于监听的事件处理196

3.2.1 监听的处理模型196

3.2.2 事件和事件监听器199

实例:控制飞机移动199

3.2.3 内部类作为事件监听器类202

3.2.4 外部类作为事件监听器类202

3.2.5 Activity本身作为事件监听器类203

3.2.6 Lambda表达式作为事件监听器类204

3.2.7 直接绑定到标签204

3.3 基于回调的事件处理205

3.3.1 回调机制与监听机制205

3.3.2 基于回调的事件传播207

3.4 响应系统设置的事件208

3.4.1 Configuration类简介209

实例:获取系统设备状态209

3.4.2 重写onConfigurationChanged方法响应系统设置更改210

实例:监听屏幕方向的改变211

3.5 Handler消息传递机制212

3.5.1 Handler类简介213

实例:自动播放动画213

3.5.2 Handler、Loop、MessageQueue的工作原理214

实例:使用新线程计算质数216

3.6 异步任务(AsyncTask)218

实例:使用异步任务执行下载219

3.7 本章小结220

第4章 深入理解Activity与Fragment221

4.1 建立、配置和使用Activity222

4.1.1 高级Activity222

实例:用LauncherActivity开发启动Activity的列表223

实例:使用ExpandableListActivity实现可展开的Activity224

实例:PreferenceActivity结合PreferenceFragment实现参数设置界面224

4.1.2 配置Activity228

4.1.3 启动、关闭Activity230

4.1.4 使用Bundle在Activity之间交换数据232

实例:用第二个Activity处理注册信息233

4.1.5 启动其他Activity并返回结果235

实例:用第二个Activity让用户选择信息236

4.2 Activity的回调机制238

4.3 Activity的生命周期239

4.3.1 Activity的生命周期演示239

4.3.2 Activity与Servlet的相似性和区别242

4.4 Activity的4种加载模式243

4.4.1 standard模式243

4.4.2 singleTop模式244

4.4.3 singleTask模式245

4.4.4 singleInstance模式246

4.5 Fragment详解248

4.5.1 Fragment概述及其设计初衷248

4.5.2 创建Fragment249

实例:开发显示图书详情的Fragment250

实例:创建ListFragment251

4.5.3 Fragment与Activity通信253

4.5.4 Fragment管理与Fragment事务254

实例:开发兼顾屏幕分辨率的应用255

4.6 Fragment的生命周期258

4.7 本章小结262

第5章 使用Intent和IntentFilter通信263

5.1 Intent对象简述264

5.2 Intent的属性及intent-filter配置265

5.2.1 Component属性265

5.2.2 Action、Category属性与intent-filter配置267

5.2.3 指定Action、Category调用系统Activity271

实例:查看并获取联系人电话272

实例:返回系统Home桌面275

5.2.4 Data、Type属性与intent-filter配置275

实例:使用Action、Data属性启动系统Activity281

5.2.5 Extra属性283

5.2.6 Flag属性283

5.3 本章小结284

第6章 Android应用资源285

6.1 应用资源概述286

6.1.1 资源的类型及存储方式286

6.1.2 使用资源287

6.2 字符串、颜色、尺寸资源289

6.2.1 颜色值的定义289

6.2.2 定义字符串、颜色、尺寸资源文件290

6.2.3 使用字符串、颜色、尺寸资源291

6.3 数组(Array)资源293

6.4 使用Drawable资源295

6.4.1 图片资源296

6.4.2 StateListDrawable资源296

实例:高亮显示正在输入的文本框297

6.4.3 LayerDrawable资源298

实例:定制拖动条的外观298

6.4.4 ShapeDrawable资源299

实例:椭圆形、渐变背景的文本框300

6.4.5 ClipDrawable资源301

实例:徐徐展开的风景302

6.4.6 AnimationDrawable资源303

6.5 属性动画(Property Animation)资源305

实例:不断渐变的背景色306

6.6 使用原始XML资源307

6.6.1 定义原始XML资源307

6.6.2 使用原始XML文件308

6.7 使用布局(Layout)资源309

6.8 使用菜单(Menu)资源310

6.9 样式(Style)和主题(Theme)资源310

6.9.1 样式资源310

6.9.2 主题资源312

实例:给所有窗口添加边框、背景312

6.10 属性(Attribute)资源313

6.11 使用原始资源316

6.12 国际化317

6.12.1 为Android应用提供国际化资源317

6.12.2 国际化Android应用318

6.13 自适应不同屏幕的资源320

6.14 本章小结323

第7章 图形与图像处理324

7.1 使用简单图片325

7.1.1 使用Drawable对象325

7.1.2 Bitmap和BitmapFactory325

7.2 绘图327

7.2.1 Android绘图基础:Canvas、Paint等327

7.2.2 Path类331

7.2.3 绘制游戏动画334

实例:采用双缓冲实现画图板334

实例:弹球游戏338

7.3 图形特效处理341

7.3.1 使用Matrix控制变换341

7.3.2 使用drawBitmapMesh扭曲图像343

实例:可揉动的图片344

7.3.3 使用Shader填充图形346

7.4 逐帧(Frame)动画347

7.4.1 AnimationDrawable与逐帧动画347

7.4.2 实例:在指定点爆炸349

7.5 补间(Tween)动画351

7.5.1 Tween动画与Interpolator351

7.5.2 位置、大小、旋转度、透明度改变的补间动画352

实例:蝴蝶飞舞354

7.5.3 自定义补间动画356

7.6 Android 8增强的属性动画359

7.6.1 属性动画的API359

7.6.2 使用属性动画361

实例:大珠小珠落玉盘365

7.7 使用SurfaceView实现动画369

7.7.1 SurfaceView的绘图机制369

7.7.2 实例:基于SurfaceView开发示波器372

7.8 本章小结374

第8章 Android数据存储与IO375

8.1 使用SharedPreferences376

8.1.1 SharedPreferences与Editor简介376

8.1.2 SharedPreferences的存储位置和格式377

实例:记录应用程序的使用次数378

8.2 File存储379

8.2.1 openFileOutput和openFileInput379

8.2.2 读写SD卡上的文件381

实例:SD卡文件浏览器384

8.3 SQLite数据库387

8.3.1 SQLiteDatabase简介387

8.3.2 创建数据库和表388

8.3.3 SQLiteOpenHelper类389

8.3.4 使用SQL语句操作SQLite数据库390

8.3.5 使用sqlite3工具392

8.3.6 使用特定方法操作SQLite数据库393

8.3.7 事务396

8.3.8 SQLite数据库最佳实践建议396

8.4 手势(Gesture)397

8.4.1 手势检测397

实例:通过手势缩放图片399

实例:通过手势实现翻页效果400

8.4.2 增加手势402

8.4.3 识别用户手势405

8.5 让应用说话(TTS)407

8.6 本章小结410

第9章 使用ContentProvider实现数据共享411

9.1 数据共享标准:ContentProvider412

9.1.1 ContentProvider简介412

9.1.2 Uri简介413

9.1.3 使用ContentResolver操作数据414

9.2 开发ContentProvider415

9.2.1 ContentProvider与ContentResolver的关系415

9.2.2 开发ContentProvider子类416

9.2.3 配置ContentProvider417

9.2.4 使用ContentResolver调用方法418

9.2.5 创建ContentProvider的说明420

实例:使用ContentProvider共享单词数据421

9.3 操作系统的ContentProvider426

9.3.1 使用ContentProvider管理联系人426

9.3.2 使用ContentProvider管理多媒体内容431

9.4 监听ContentProvider的数据改变434

9.4.1 ContentObserver简介434

9.4.2 实例:监听用户发出的短信435

9.5 本章小结437

第10章 Service与BroadcastReceiver438

10.1 Service简介439

10.1.1 创建、配置Service439

10.1.2 启动和停止Service441

10.1.3 绑定本地Service并与之通信442

10.1.4 Service的生命周期446

10.1.5 使用IntentService447

10.2 跨进程调用Service(AIDL Service)449

10.2.1 AIDL Service简介450

10.2.2 创建AIDL文件450

10.2.3 将接口暴露给客户端451

10.2.4 客户端访问AIDL Service452

实例:传递复杂数据的AIDL Service453

10.3 电话管理器(TelephonyManager)458

实例:获取网络和SIM卡信息458

实例:监听手机来电460

10.4 短信管理器(SmsManager)461

实例:发送短信461

实例:短信群发462

10.5 音频管理器(AudioManager)465

10.5.1 AudioManager简介465

10.5.2 实例:使用AudioManager控制手机音频465

10.6 振动器(Vibrator)466

10.6.1 Vibrator简介466

10.6.2 使用Vibrator控制手机振动467

10.7 手机闹钟服务(AlarmManager)468

10.7.1 AlarmManager简介468

10.7.2 设置闹钟468

实例:定时更换壁纸470

10.8 Android 8的广播接收器472

10.8.1 BroadcastReceiver简介472

10.8.2 发送广播474

10.8.3 有序广播475

实例:基于Service的音乐播放器477

10.9 接收系统广播消息481

实例:Android 8中开机自动运行的限制482

实例:手机电量提示483

10.10 本章小结484

第11章 多媒体应用开发485

11.1 音频和视频的播放486

11.1.1 Android 8增强的MediaPlayer486

11.1.2 音乐特效控制490

实例:音乐的示波器、均衡、重低音和音场491

11.1.3 Android 8新增的VolumeShaper498

11.1.4 使用SoundPool播放音效499

11.1.5 使用VideoView播放视频501

11.1.6 使用MediaPlayer和SurfaceView播放视频503

11.2 使用MediaRecorder录制音频506

实例:录制音乐507

11.3 控制摄像头拍照509

11.3.1 使用Camera v2拍照509

实例:拍照时自动对焦510

11.3.2 录制视频短片516

实例:录制生活短片516

11.4 屏幕捕捉520

11.5 本章小结522

第12章 OpenGL与3D开发523

12.1  3D图形与3D开发的基本知识524

12.2  OpenGL和OpenGL ES简介525

12.3  绘制2D图形526

12.3.1  在Android应用中使用OpenGL ES526

12.3.2  绘制平面上的多边形528

12.3.3  旋转534

12.4  绘制3D图形537

12.4.1  构建3D图形537

12.4.2  应用纹理贴图541

12.5  本章小结546

第13章 Android网络应用547

13.1 基于TCP协议的网络通信548

13.1.1 TCP协议基础548

13.1.2 使用ServerSocket创建TCP服务器端549

13.1.3 使用Socket进行通信550

13.1.4 加入多线程553

13.2 使用URL访问网络资源558

13.2.1 使用URL读取网络资源559

13.2.2 使用URLConnection提交请求560

13.3 使用HTTP访问网络565

13.3.1 使用HttpURLConnection565

实例:多线程下载565

13.3.2 使用OkHttp570

实例:访问被保护资源571

13.4 使用WebView进行混合开发575

13.4.1 使用WebView浏览网页575

实例:迷你浏览器575

13.4.2 使用WebView加载HTML代码577

13.4.3 使用WebView中的调用Android方法578

13.5 本章小结580

第14章 管理Android系统桌面581

14.1 改变壁纸582

14.1.1 开发动态壁纸(Live Wallpapers)582

14.1.2 实例:蜿蜒壁纸583

14.2 Android 8的快捷方式587

14.2.1 静态快捷方式587

14.2.2 动态快捷方式588

14.2.3 Android 8的桌面快捷方式(Pinned Shortcut)590

实例:让程序占领桌面591

14.3 管理桌面控件592

14.3.1 开发桌面控件592

实例:液晶时钟594

14.3.2 显示带数据集的桌面控件596

14.4 本章小结599

第15章 传感器应用开发600

15.1 利用Android的传感器601

15.2 Android的常用传感器603

15.2.1 方向传感器603

15.2.2 陀螺仪传感器604

15.2.3 磁场传感器604

15.2.4 重力传感器604

15.2.5 线性加速度传感器605

15.2.6 温度传感器605

15.2.7 光传感器605

15.2.8 湿度传感器605

15.2.9 压力传感器605

15.2.10 心率传感器605

15.2.11 Android 8的离身检查传感器605

15.3 传感器应用案例609

实例:指南针609

实例:水平仪611

15.4 本章小结614


TOP书摘

TOP 其它信息

加载页面用时:78.132