书籍作者:于连林 | ISBN:9787115461759 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7293 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书深入浅出,详细讲解了Android开发的知识,主要内容包括:Android的体系架构、Android Studio、项目的创建、Android工程目录、调试程序、界面的搭建;常用的控件和属性、提示信息Toast和Snackbar、点击事件3种写法等;Activity之间的跳转、Activity生命周期、Activity启动模式等;数据存储、网络编程;图片的处理;复杂控件的使用;Fragment、广播接收者、Service、动画等;以及Android新特性、Kotlin语言、性能优化、屏幕适配、自定义控件、JNI/NDK开发等高级知识。并通过开发一个真实的项目让读者学以致用。
本书内容通俗易懂,比较适合初学者阅读,也可以作为专业人员的工具书,以及大专院校相关专业师生的学习用书和培训学校的教材。
于连林,CSDN博客专家,从事Android开发和教育多年,做过很多个项目,包括办公类,O2O等类型,曾在培训机构从事Android教育,有上千课时讲课经验,收到过许多好评。
12万读者的真实阅读体验,CSDN博客专家的力作,基于新版的Android
循序渐进地讲述开发过程中必备的知识,宗旨是不重复开发一个“轮子”,在给大家讲明原理的同时,介绍一些好的开发框架,这些框架能够让读者很快上手开发完成一个应用。
本书前面部分知识点配有相应视频,帮助读者零基础学通Android开发
作者微信答疑,解决读者学习中的困难
欢迎您阅读这本书
Android已经在短短几年从无到有成为这个世界上最受欢迎的智能手机操作系统。无论您是为公众开发应用程序,还是为自己开发App,都会发现Android是一个令人兴奋和具有挑战性的平台。您会爱上Android开发!
最重要的是,我衷心希望您能找到它对您开发有用的地方。
IT知识本身也许是枯燥的,本书尽量把它讲得幽默点。
本书结构
本书并不像其他的书那样,把所有的知识点堆到一起。这本书循序渐进地讲述开发过程中必备的知识,虽然可能忽略一些很少用的知识,但大家在实际开发过程中就会发现学的已经够用了。本书宗旨是不重复开发一个“轮子”,在给大家讲明白原理的同时会介绍一些高手开发的框架,这些框架能够让大家很快上手开发完成一个应用。
读者对象
本书内容通俗易懂,比较适合初学者阅读,也可以作为专业人员的工具书。学习本书之前您不需要任何的Android基础,但是需要有一定的Java基础(包括数组、运算符、面向对象思想、线程、IO流等),因为大部分Android开发都是使用Java语言的,而本书很少会介绍Java方面的知识。
阅读本书时,您可以根据自身的情况来决定如何阅读,如果没有Android开发基础,建议不要跳过前面的章节。
因为考虑到新手初学时很难入门,所以本书刚开始的部分内容会附赠开发教学视频,帮助读者尽快入门学习。
微信公众号
为了方便大家看到此书勘误,本书提供一个网址:book.520wcf.com。
IT行业技术日新月异,本书将尽快更新最新的知识点。为了方便大家及时收到本书更新提醒,建议大家关注微信公众账号。微信添加公众号搜索likeDev,或者扫码加入:
为了方便交流,可以加QQ交流群:488929846,添加时请输入备注:爱上Android。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
第1章初识Android1
1.1Android是什么1
1.2Android体系架构1
1.3Android发展史4
第2章选择您的开发工具5
2.1准备软件,认识AndroidStudio5
2.1.1什么是AndroidStudio5
2.1.2为什么使用AndroidStudio6
2.2安装AndroidStudio6
2.2.1安装配置要求6
2.2.2下载地址6
2.2.3安装JDK7
2.2.4安装AndroidStudio7
2.2.5设置JDK和AndroidSDK
目录14
2.3项目的创建16
2.3.1创建项目的步骤16
2.3.2解决错误(没有错误最好)19
2.4AndroidStudio界面预览21
2.5常用设置22
2.5.1设置主题22
2.5.2设置字体和格式22
2.5.3设置文件编码24
2.5.4设置快捷键24
2.5.5其他设置26
2.6常用快捷键26
2.7Android工程目录27
2.7.1工程目录介绍27
2.7.2Gradle使用详解28
2.7.3app/build.gradle28
2.8SDK目录介绍30
2.9调试程序31
2.9.1创建模拟器31
2.9.2连接真实手机33
2.9.3Genymotion模拟器34
2.10程序启动分析34
2.11日志和注释36
2.11.1注释37
2.11.2日志37
2.11.3设置AndroidStudio日志
显示颜色38
2.11.4实际开发中控制日志39
2.11.5Logger的使用41
总结42
第3章界面的搭建43
3.1眼见皆View43
3.2布局的搭建方式43
3.3常用的控件和属性44
3.3.1TextView44
3.3.2Button45
3.3.3EditText46
3.3.4ImageView47
3.3.5ProgressBar49
3.4布局的介绍50
3.4.1LinearLayout(线性布局)50
3.4.2RelativeLayout(相对布局)52
3.4.3FrameLayout(帧布局)55
3.4.4GridLayout(网格布局)56
3.4.5CoordinatorLayout58
3.4.6ConstraintLayout(约束
布局)61
3.5提示信息Toast和Snackbar61
3.5.1Toast使用详解61
3.5.2修改Toast位置63
3.5.3自定义Toast布局63
3.5.4避免内存泄露65
3.5.5Snackbar65
3.6点击事件三种写法68
3.6.1通过匿名内部类或内部类
实现68
3.6.2让类实现接口69
3.6.3在布局文件中注册事件70
3.7使用Lambda表达式代替匿名
内部类70
3.7.1什么是lambda呢70
3.7.2使用Lambda表达式71
3.8AlertDialog提示对话框73
3.8.1一般对话框75
3.8.2MaterialDesign风格的
对话框76
3.8.3列表对话框78
3.8.4单选按钮对话框79
3.8.5多选按钮对话框79
3.8.6自定义AlertDialog80
3.9ProgressDialog81
总结83
第4章Activity介绍84
4.1Activity之间的跳转84
4.1.1显示意图84
4.1.2隐式意图86
4.1.3隐式意图的常见操作88
4.1.4IntentFilter匹配规则89
4.2Activity之间传递数据92
4.2.1通过Intent传递数据92
4.2.2静态工厂设计模式传递
数据93
4.2.3返回数据给之前的Activity93
4.3Android6.0权限的管理95
4.3.1Android6.0新的权限机制96
4.3.2申请权限96
4.3.3第三方库RxPermissions100
4.4Activity生命周期101
4.4.1生命周期的方法101
4.4.2Activity销毁时保存数据102
4.4.3锁定横竖屏103
4.4.4开发时注意事项104
4.5Activity任务栈104
4.6Activity启动模式105
4.6.1standard105
4.6.2singleTop106
4.6.3singleTask106
4.6.4singleInstance107
4.6.5统一管理Activity108
4.7Toolbar和NavigationDrawer109
4.7.1AppBar的简介109
4.7.2创建菜单111
4.7.3Toolbar112
4.7.4Toolbar遇上Navigation
Drawer114
4.8主题样式设置118
总结120
第5章数据存储121
5.1SharedPreference121
5.2MD5加密123
5.3文件存储数据124
5.3.1保存到手机内存(Internal
Storage)124
5.3.2SD卡存储(External
Storage)127
5.4SQLite存储132
5.4.1创建数据库132
5.4.2升级数据库135
5.4.3数据库增删改查(CURD)137
5.4.4SQLite数据库的事务操作144
5.5常见的数据库框架146
总结146
第6章网络编程148
6.1HTTP协议148
6.1.1URL简介148
6.1.2HTTP简介149
6.1.3GET和POST对比151
6.2HttpURLConnection151
6.2.1为什么废弃HttpClient151
6.2.2使用HttpURLConnection
联网152
6.3多线程编程154
6.3.1线程的同步和异步154
6.3.2AsycTask158
6.3.3RxJava161
6.4网络请求实例164
6.5JSON解析168
6.5.1使用Android原生方式解析
JSON169
6.5.2Gson的使用170
6.5.3插件GsonFormat快速实现
JavaBean174
6.5.4完成请求实例176
6.6网络请求框架——Retrofit179
6.6.1使用Retrofit179
6.6.2常用的注解181
6.6.3完成请求案例181
6.6.4RxJava和Retrofit结合183
6.7WebView184
6.7.1WebView配置186
6.7.2WebViewClient方法187
6.7.3设置WebChromeClient189
6.7.4WebView常用的方法190
6.7.5WebView模板代码191
总结196
第7章图片的处理197
7.1Bitmap和Drawable197
7.2大图的加载199
7.3图片加水印202
7.4图片特效,Matrix205
7.4.1缩放205
7.4.2倒影、镜面207
7.4.3旋转208
7.4.4位移208
7.5图片颜色处理——打造自己的美图
秀秀209
7.5.1颜色过滤器
ColorMatrixColorFilter209
7.5.2实现图片美化功能210
7.6案例——随手涂鸦214
7.7加载网络图片217
7.7.1网络图片的缓存策略217
7.7.2图片加载库Picasso的使用218
总结219
第8章复杂控件的使用220
8.1ListView220
8.1.1初识ListView221
8.1.2定制ListView条目的界面222
8.1.3优化ListView225
8.1.4ListView的点击事件226
8.1.5ListView常用的属性228
8.2GridView229
8.3RecyclerView231
8.3.1初识RecyclerView231
8.3.2使用RecyclerView232
8.3.3不同的布局排列方式234
8.3.4RecyclerView添加点击
事件236
8.3.5RecyclerView添加删除
数据237
8.3.6下拉刷新
SwipeRefreshLayout237
8.4CardView239
8.5ViewPager241
8.6BottomNavigationView(底部
导航)243
8.7TabLayout246
8.7.1TabLayout使用246
8.7.2TabLayout自定义条目
样式249
总结250
第9章探索Fragment251
9.1使用Fragment252
9.1.1Fragment的生命周期252
9.1.2创建Fragment252
9.1.3向Activity添加Fragment254
9.1.4管理片段256
9.1.5Fragment的向下兼容257
9.2FragmentTabHost实现底部标签257
9.3ViewPager和Fragment结合259
总结273
第10章广播接收者274
10.1广播简介274
10.2实现一个BroadcastReceiver275
10.3发送自定义广播279
10.4桌面快捷方式283
总结285
第11章Service介绍286
11.1服务的基本用法286
11.1.1创建服务286
11.1.2启动和停止服务287
11.1.3绑定服务289
11.1.4服务的生命周期292
11.2IntentService292
11.3Service和BroadCastReceiver结合
使用的案例(兼容Android7.0)294
11.3.1Android7.0错误原因297
11.3.2使用FileProvider298
总结300
第12章动画301
12.1补间动画(TweenAnimation)301
12.2.1AlphaAnimation(透明度
动画)302
12.2.2ScaleAnimation(缩放
动画)304
12.2.3TranslateAnimation(平移
动画)305
12.2.4RotateAnimation(旋转
动画)306
12.2逐帧动画(FrameAnimation)308
12.3属性动画310
总结313
第13章新特性314
13.1Android7.0分屏开发314
13.1.1如何分屏呢315
13.1.2多窗口生命周期315
13.1.3针对多窗口进行配置316
13.1.4多窗口模式中运行应用
注意事项316
13.1.5在多窗口模式中启动新
Activity317
13.1.6支持拖放318
13.2Android7.0快速设定318
13.3约束布局ConstraintLayout321
13.3.1ConstraintLayout简介321
13.3.2添加约束布局322
13.3.3使用约束布局322
13.3.4添加约束323
13.3.5使用自动连接和约束推断325
13.3.6快速对齐Align326
13.4使用Kotlin语言开发Android326
总结330
第14章性能优化331
14.1性能检测331
14.1.1检测内存泄露331
14.1.2LeakCanary334
14.1.3追踪内存分配335
14.1.4查询方法执行的时间335
14.2过度绘制(OverDraw)336
14.2.1过度绘制概念336
14.2.2追踪过度绘制336
14.2.3去掉不合理背景337
14.2.4不合理的XML布局对
绘制的影响338
14.3避免ANR338
14.3.1ANR分析339
14.3.2ANR解决方式341
总结341
第15章屏幕适配342
15.1Android屏幕适配出现的原因342
15.2相关重要概念344
15.2.1屏幕尺寸344
15.2.2屏幕分辨率344
15.2.3屏幕像素密度344
15.2.4屏幕尺寸、分辨率、像素
密度三者关系344
15.2.5dip345
15.2.6sp345
15.3尺寸适配解决方案346
15.3.1“布局”适配346
15.3.2尺寸(size)限定符347
15.3.3最小宽度(Smallest-width)
限定符348
15.3.4使用布局别名349
15.3.5屏幕方向(Orientation)
限定符350
15.3.6“布局组件”匹配352
15.3.7Layout_weight详解352
15.3.8“图片资源”匹配355
15.3.9.9的制作355
15.3.10“用户界面流程”匹配357
15.4屏幕密度适配359
15.4.1“布局控件”适配359
15.4.2百分比布局360
15.4.3约束布局362
总结362
第16章自定义控件363
16.1自定义控件简介363
16.2View的生命周期364
16.2.1构造函数365
16.2.2onAttachedToWindow369
16.2.3onMeasure370
16.2.4onLayout372
16.2.5onDraw372
16.2.6View更新373
16.2.7动画374
总结374
第17章JNI/NDK开发375
17.1NDK配置(最新的CMake
方式)375
17.1.1下载376
17.1.2创建项目376
17.1.3运行项目378
17.1.4手动添加native方法379
总结380
第18章开发一个真实的项目381
18.1项目需求分析381
18.2创建项目382
18.3界面实现383
18.3.1启动界面383
18.3.2引导页面385
18.3.3主界面388
18.3.4列表界面390
18.4请求网络395
18.5新闻列表和详情400
18.6完成整个项目409
总结412