AndroidStudio开发实战:从零基础到App上线(第版)

本书是一部Android开发的实战教程,由浅入深、由基础到高级,带领读者一步一步走进App开发的神奇世界。全书共分为16章。其中,前8章是基础部分,主要讲解AndroidStudio的环境搭建、App开发的各种常用控件、App的数据存储方式、如何调试App并将App发布上线;后8章是进阶部分,主要讲解App开发的设备操作、网络通信、事件、动画、多媒体、融合技术、第三方开发包、性能优化等。书中在讲解知识点的同时给出了大量实战范例,方便读者迅速将所学的知识运用到实际开发中。通过本书的学习,读者能够掌握3类主流App的基本开发技术,包括购物App(电子商务)、聊天App(即时通信)、打车App(交通出行)。另外,能够学会开发一些趣味应用,包括简单计算器、房贷计算器、万年历、日程表、手机安全助手、指南针、卫星浑天仪、应用超市、抠图工具、全景图库、动感影集、影视播放器、音乐播放器、WiFi共享器、电子书架等。本书适用于Android开发的广大从业者、有志于转型App开发的程序员、App开发的业余爱好者,也可作为大中专院校与培训机构的Android课程教材。
作者简介
欧阳燊,CSDN博客专家,有14年以上软件开发经验,熟悉C/C、Java及相关软件架构,4年以上Android开发经验,对Android开发拥有丰富的实战经验。已出版畅销书《AndroidStudio开发实战:从零基础到App上线》《Kotlin从零到精通Android开发》。

目录
第1章AndroidStudio环境搭建1
1.1AndroidStudio简介1
1.2AndroidStudio的安装2
1.2.1开发机配置要求2
1.2.2安装依赖的软件2
1.2.3安装AndroidStudio3
1.2.4下载Android的SDK5
1.3运行小应用HelloWorld6
1.3.1创建新项目6
1.3.2编译项目/模块8
1.3.3创建模拟器9
1.3.4在模拟器上运行App9
1.4App的工程结构11
1.4.1工程目录说明11
1.4.2编译配置文件build.gradle12
1.4.3App运行配置AndroidManifest.xml13
1.4.4在代码中操纵控件14
1.5准备开始15
1.5.1使用快捷键15
1.5.2安装SVN工具16
1.5.3安装常用插件17
1.5.4导入已经存在的工程19
1.5.5新建一个Activity页面20
1.6小结22
第2章初级控件23
2.1屏幕显示23
2.1.1像素23
2.1.2颜色25
2.1.3屏幕分辨率26
2.2简单布局27
2.2.1视图View的基本属性27
2.2.2线性布局LinearLayout30
2.2.3滚动视图ScrollView32
2.3简单控件34
2.3.1文本视图TextView34
2.3.2按钮Button37
2.3.3图像视图ImageView39
2.3.4图像按钮ImageButton43
2.4图形基础45
2.4.1图形Drawable45
2.4.2状态列表图形46
2.4.3形状图形47
2.4.4九宫格图片50
2.5实战项目:简单计算器53
2.5.1设计思路53
2.5.2小知识:日志Log/提示Toast55
2.5.3代码示例56
2.6小结57
第3章中级控件59
3.1其他布局59
3.1.1相对布局RelativeLayout59
3.1.2框架布局FrameLayout63
3.2特殊按钮64
3.2.1复选框CheckBox64
3.2.2开关按钮Switch65
3.2.3单选按钮RadioButton66
3.3适配视图基础68
3.3.1下拉框Spinner68
3.3.2数组适配器ArrayAdapter69
3.3.3简单适配器SimpleAdapter70
3.4编辑框72
3.4.1文本编辑框EditText72
3.4.2自动完成编辑框AutoCompleteTextView77
3.5活动Activity基础78
3.5.1Activity的生命周期78
3.5.2使用Intent传递消息83
3.5.3向下一个Activity传递参数85
3.5.4向上一个Activity返回参数86
3.6实战项目:房贷计算器89
3.6.1设计思路89
3.6.2小知识:文本工具TextUtils90
3.6.3代码示例91
3.7实战项目:登录App93
3.7.1设计思路93
3.7.2小知识:提醒对话框AlertDialog94
3.7.3代码示例96
3.8小结98

第4章数据存储100
4.1共享参数SharedPreferences100
4.1.1共享参数的基本用法100
4.1.2实现记住密码功能102
4.2数据库SQLite103
4.2.1SQLite的基本用法103
4.2.2数据库帮助器SQLiteOpenHelper104
4.2.3优化记住密码功能110
4.3SD卡文件操作112
4.3.1SD卡的基本操作112
4.3.2公有存储空间与私有存储空间114
4.3.3文本文件读写115
4.3.4图片文件读写116
4.4应用Application基础118
4.4.1Application的生命周期118
4.4.2利用Application操作全局变量119
4.5内容提供与处理121
4.5.1内容提供器ContentProvider121
4.5.2内容解析器ContentResolver123
4.5.3内容观察器ContentObserver128
4.6实战项目:购物车131
4.6.1设计思路131
4.6.2小知识:菜单Menu132
4.6.3代码示例136
4.7小结139
第5章高级控件140
5.1日期时间控件140
5.1.1日期选择器DatePicker140
5.1.2时间选择器TimePicker142
5.2列表类视图144
5.2.1基本适配器BaseAdapter144
5.2.2列表视图ListView148
5.2.3网格视图GridView154
5.3翻页类视图158
5.3.1翻页视图ViewPager158
5.3.2翻页标题栏PagerTitleStrip/PagerTabStrip161
5.3.3简单的启动引导页163
5.4碎片Fragment166
5.4.1静态注册166
5.4.2动态注册/碎片适配器FragmentStatePagerAdapter170
5.4.3改进的启动引导页173
5.5广播Broadcast基础175
5.5.1发送/接收临时广播176
5.5.2定时器AlarmManager178
5.6实战项目:万年历180
5.6.1设计思路180
5.6.2小知识:月份选择器MonthPicker181
5.6.3代码示例183
5.7实战项目:日程表184
5.7.1设计思路184
5.7.2小知识:震动器Vibrator185
5.7.3代码示例185
5.8小结187
第6章自定义控件188
6.1自定义视图188
6.1.1声明属性188
6.1.2构造对象191
6.1.3测量尺寸192
6.1.4宽高尺寸的动态调整195
6.1.5绘制视图198
6.2自定义动画204
6.2.1任务Runnable204
6.2.2下拉刷新动画205
6.2.3圆弧进度动画207
6.3自定义对话框208
6.3.1对话框Dialog208
6.3.2改进的日期对话框209
6.3.3自定义多级对话框213
6.4自定义通知栏214
6.4.1通知推送Notification214
6.4.2进度条ProgressBar218
6.4.3远程视图RemoteViews220
6.4.4自定义通知的文本颜色设定223
6.5服务Service基础225
6.5.1Service的生命周期225
6.5.2推送服务到前台229
6.6实战项目:手机安全助手230
6.6.1设计思路230
6.6.2小知识:应用包管理器PackageManager232
6.6.3代码示例234
6.7小结235
第7章组合控件236
7.1标签栏236
7.1.1标签按钮236
7.1.2实现底部标签栏238
7.2导航栏246
7.2.1工具栏Toolbar246
7.2.2溢出菜单OverflowMenu248
7.2.3搜索框SearchView250
7.2.4标签布局TabLayout253
7.3横幅条260
7.3.1自定义指示器260
7.3.2实现横幅轮播Banner263
7.3.3仿京东顶到状态栏的Banner267
7.4增强型列表271
7.4.1循环视图RecyclerView271
7.4.2布局管理器LayoutManager275
7.4.3动态更新循环视图280
7.5材质设计库282
7.5.1协调布局CoordinatorLayout282
7.5.2应用栏布局AppBarLayout285
7.5.3可折叠工具栏布局CollapsingToolbarLayout287
7.6实战项目:仿支付宝的头部伸缩特效290
7.6.1设计思路291
7.6.2小知识:导航栏的滚动标志292
7.6.3代码示例293
7.7实战项目:仿淘宝主页298
7.7.1设计思路298
7.7.2小知识:下拉刷新布局SwipeRefreshLayout299
7.7.3代码示例303
7.8小结305
第8章调试与上线306
8.1调试工作306
8.1.1模拟器调试306
8.1.2真机调试311
8.1.3导出APK安装包313
8.2准备上线315
8.2.1版本设置315
8.2.2上线模式316
8.2.3数据加密320
8.3安全加固325
8.3.1反编译325
8.3.2代码混淆327
8.3.3第三方加固及重签名329
8.4发布到应用商店331
8.4.1注册开发者账号331
8.4.2创建并提交应用332
8.5小结334
第9章设备操作335
9.1摄像头335
9.1.1表面视图SurfaceView335
9.1.2使用Camera拍照337
9.1.3纹理视图TextureView343
9.1.4使用Camera2拍照344
9.1.5运行时动态授权管理346
9.2麦克风349
9.2.1拖动条SeekBar349
9.2.2音量控制350
9.2.3录音与播音352
9.2.4录像与放映360
9.3传感器362
9.3.1传感器的种类362
9.3.2摇一摇——加速度传感器364
9.3.3指南针——磁场传感器365
9.3.4计步器、感光器和陀螺仪368
9.4手机定位370
9.4.1开启定位功能371
9.4.2获取定位信息373
9.5短距离通信378
9.5.1NFC近场通信378
9.5.2红外遥控384
9.5.3蓝牙BlueTooth388
9.6实战项目:仿微信的发现功能395
9.6.1设计思路395
9.6.2小知识:全球卫星导航系统397
9.6.3代码示例399
9.7小结406
第10章网络通信407
10.1多线程407
10.1.1消息传递Message407
10.1.2进度对话框ProgressDialog411
10.1.3异步任务AsyncTask414
10.1.4异步服务IntentService420
10.2HTTP接口访问423
10.2.1网络连接检查423
10.2.2移动数据格式JSON425
10.2.3JSON串与实体类自动转换427
10.2.4HTTP接口调用428
10.2.5HTTP图片获取432
10.3上传和下载434
10.3.1下载管理器DownloadManager435
10.3.2文件对话框441
10.3.3文件上传442
10.4套接字Socket445
10.4.1网络地址InetAddress445
10.4.2Socket通信446
10.5实战项目:仿应用宝的应用更新功能451
10.5.1设计思路451
10.5.2小知识:查看APK文件的包信息452
10.5.3代码示例454
10.6实战项目:仿手机QQ的聊天功能457
10.6.1设计思路457
10.6.2小知识:可折叠列表视图ExpandableListView459
10.6.3代码示例464
10.7小结468
第11章事件469
11.1按键事件469
11.1.1检测软键盘469
11.1.2检测物理按键472
11.1.3音量调节对话框474
11.2触摸事件479
11.2.1手势事件的分发流程479
11.2.2手势事件处理MotionEvent483
11.2.3手写签名486
11.3手势检测488
11.3.1手势检测器GestureDetector488
11.3.2飞掠视图ViewFlipper491
11.3.3手势控制横幅轮播494
11.4手势冲突处理498
11.4.1上下滚动与左右滑动的冲突处理498
11.4.2内部滑动与翻页滑动的冲突处理501
11.4.3正常下拉与下拉刷新的冲突处理506
11.5实战项目:抠图神器——美图变变510
11.5.1设计思路510
11.5.2小知识:二维图像的基本加工511
11.5.3代码示例512
11.6实战项目:虚拟现实的全景图库514
11.6.1设计思路514
11.6.2小知识:三维图形接口OpenGL516
11.6.3代码示例529
11.7小结532
第12章动画534
12.1帧动画534
12.1.1帧动画的实现534
12.1.2显示GIF动画536
12.1.3淡入淡出动画538
12.2补间动画539
12.2.1补间动画的种类539
12.2.2补间动画的原理544
12.2.3集合动画547
12.2.4在飞掠横幅中使用补间动画549
12.3属性动画551
12.3.1属性动画的用法551
12.3.2属性动画组合555
12.3.3插值器和估值器557
12.4矢量动画561
12.4.1矢量图形561
12.4.2可缩放矢量图形SVG标记563
12.4.3利用属性动画实现矢量动画565
12.4.4仿支付宝的支付成功动画568
12.5动画的实现手段572
12.5.1使用延时重绘572
12.5.2设置状态参数574
12.5.3滚动器Scroller575
12.6实战项目:仿QQ空间的动感影集577
12.6.1设计思路577
12.6.2小知识:画布的绘图层次578
12.6.3代码示例583
12.7小结584
第13章多媒体585
13.1相册585
13.1.1画廊Gallery585
13.1.2图像切换器ImageSwitcher589
13.1.3图片查看器——青青相册592
13.2音频播放596
13.2.1铃声Ringtone596
13.2.2声音池SoundPool599
13.2.3音轨录播AudioTrack602
13.3视频播放605
13.3.1视频视图VideoView606
13.3.2媒体控制条MediaController609
13.3.3自定义播放控制条611
13.4多窗口613
13.4.1分屏——多窗口模式614
13.4.2画中画——特殊的多窗口617
13.4.3自定义悬浮窗619
13.4.4截图和录屏624
13.5实战项目:影视播放器——爱看剧场626
13.5.1设计思路626
13.5.2小知识:竖屏与横屏切换627
13.5.3代码示例630
13.6实战项目:音乐播放器——浪花音乐634
13.6.1设计思路634
13.6.2小知识:可变字符串SpannableString636
13.6.3代码示例639
13.7小结644
第14章融合技术646
14.1网页集成646
14.1.1资产管理器AssetManager646
14.1.2网页视图WebView648
14.1.3简单浏览器651
14.2JNI开发658
14.2.1NDK环境搭建658
14.2.2创建JNI接口661
14.2.3JNI实现加解密666
14.3局域网共享669
14.3.1无线网络管理器WifiManager670
14.3.2连接指定WiFi671
14.3.3开关热点672
14.3.4点对点蓝牙传输674
14.4实战项目:共享经济弄潮儿——WiFi共享器683
14.4.1设计思路683
14.4.2小知识:NetBIOS协议684
14.4.3代码示例688
14.5实战项目:笔墨飘香之电子书架693
14.5.1设计思路693
14.5.2小知识:PDF文件渲染器PdfRenderer694
14.5.3代码示例696
14.6小结701
第15章第三方开发包702
15.1地图SDK702
15.1.1查看签名信息702
15.1.2百度地图704
15.1.3高德地图710
15.2分享SDK714
15.2.1QQ分享715
15.2.2微信分享716
15.3支付SDK721
15.3.1支付宝支付721
15.3.2微信支付723
15.4语音SDK724
15.4.1文字转语音TextToSpeech724
15.4.2语音识别729
15.4.3语音合成733
15.5实战项目:仿滴滴打车734
15.5.1设计思路734
15.5.2小知识:评分条RatingBar735
15.5.3代码示例738
15.6小结739
第16章性能优化741
16.1布局文件优化741
16.1.1减少重复布局741
16.1.2自适应调整布局744
16.1.3自定义窗口主题746
16.2内存泄漏处理748
16.2.1内存泄漏的检测748
16.2.2内存泄漏的发生749
16.2.3内存泄漏的预防755
16.3线程池管理758
16.3.1普通线程池758
16.3.2定时器线程池760
16.4省电模式761
16.4.1检测当前电量761
16.4.2检测屏幕开关763
16.4.3休眠模式对App的影响765
16.5实战项目:网络图片缓存框架768
16.5.1设计思路768
16.5.2小知识:LRU缓存策略769
16.5.3代码示例772
16.6小结780
附录781
附录一仿流行App的常用功能781
附录二Android各版本的新增功能说明782
附录三手机硬件与App开发的关联784
附录四专业术语索引785


时光荏苒犹如白驹过隙,转瞬之间本书离初版已近两年,在此期间信息科技的快速发展令人目不暇接。物联网方兴未艾,虚拟现实潮起潮落,共享经济遍地开花,人工智能火得一塌糊涂,第四次工业革命蓄势待发,而移动互联网从狂飙回归到常态。
单就App开发而言,安卓系统版本从2016年的Android7到2017年的Android8再到2018年的Android9,AndroidStudio的版本也从2016年的2.2更新到2.3、3.0、3.1直到2018年的3.2,同时Android的开发语言除了Java以外又多了一个Kotlin。从应用场景来说,早期只运行于手机和平板电脑的安卓系统,现在逐步拓展到了互联网电视、可穿戴设备、车载终端、智能家居等其他设备之上。而搭载安卓系统的智能手机,也从仅含通话、上网等基本功能的通信工具,逐渐演化成集拍照、定位、社交、支付等生活服务为一身的全能小秘书。

#现在前往

精选留言

AndroidStudio,开发,实战,基础
sample
2020-08-07
写留言
签到
投稿
QQ咨询
返回顶部