第一行代码第三版
张云瀚
Android攻城狮
展开
-
《第一行代码》第三版之编写开源库(十九)
Retrofit、Glide都是不错的开源库,我们只需要在build.gradle的dependices中添加一行库的引用地址就可以了。开发一个开源库提供给开发者使用应该是一件很有意思的事情。 开发前的准备工作 SDK以实现功能逻辑为主,对界面开发相关会少;产品形式是库文件或者库引用地址;面向用户群体是为开发者所调用的(稳定、简单和方便)。 记得chap8中有提到android运行时权限API的用法,需要判断用户是否授权拨打电话权限,若无权限申请,还需...原创 2020-10-24 23:10:06 · 1508 阅读 · 1 评论 -
《第一行代码》第三版之通知、多媒体(十)
本章介绍了通知及使用技巧、调用摄像头及读取相册、播放音视频。最后我们介绍了infix函数这种高级语法糖的用法。9.1.将程序运行到手机上 没啥好讲的9.2.使用通知 某app不在前台运行时却希望向用户发出一些提示信息,可以借助通知来实现。发出通知后,最上方状态栏会显示一个通知的图标,下拉状态栏可以获取通知的详细内容。 //第一步:getSystemService用于获取系统的那个服务,需要一个NotificationManager对同志进行管理 ...原创 2020-06-13 11:51:44 · 1844 阅读 · 0 评论 -
《第一行代码》第三版之探究ContentProvider(九)
本章我们介绍了跨程序共享CotentProvider。从权限机制分类(普通权限、危险权限)到6.0(API>=23)之后的运行时权限;从访问系统联系人程序的数据到创建自己的ContentProvider供外部程序进行CRUD;从泛型、委托到实现自己的lazy函数,比较充实。8.1.ContentProvider简介 上一章谈到的持久化存储技术只能在当前程序中访问,如何进行跨程序数据共享,考虑使用ContentProvider。譬如:系统通讯录共享、短信、媒体库等。Cont...原创 2020-05-21 12:18:42 · 1330 阅读 · 0 评论 -
《第一行代码》第三版之数据存储方案(八)
本章我们介绍了数据存储方案:文件存储、SharedPreference和SQLite。文件存储的读写,SharedPreference的读写和实现记住密码功能;SQLite的创建升级数据库以及CRUD;SQLite数据库的最佳实践:事务以及升级数据库;最后我们讲了利用高阶函数和KTX库简化SharedPreference和ContentValues的写法。7.1.持久化技术简介 保存于内存的数据是瞬时状态,瞬时数据无法持久化保存。保存在存储设备的数据是持久状态的,有3种方式可以实...原创 2020-05-17 12:30:14 · 1575 阅读 · 0 评论 -
《第一行代码》第三版之详解广播机制(七)
本章我们介绍了广播分类(标准和有序)、接收系统广播(动态和静态注册)、标准和有序广播的用法和强制下线功能。此外,作者介绍了高阶函数、内联函数和noinline的用法。6.1.广播机制简介 Android允许程序自由发送和接收广播,发送基于Intent,接收则需要引入BroadCastReceiver。广播有两种类型:标准广播和有序广播。前者完全异步执行,广播发出之后,所有BroadCastReceiver均同时接收到,效率高,无法被截断;后者是同步执行,广播发出之后,同一时刻只会有...原创 2020-05-09 19:09:15 · 1537 阅读 · 4 评论 -
《第一行代码》第三版之探究Fragment(六)
在本章,我们首先介绍了Fragment的使用方式:简单用法、FragmentManager和Transaction动态添加、返回栈防止退出、Fragment和Activity之间的信息传递。随后介绍了Fragment生命周期、限定符和最小宽度限定符。最后我们介绍了扩展函数(ClassName.methodName)和运算符(operator fun plus())。5.1.Fragment是什么 手机屏幕在3英寸~6英寸之间,平板在7英寸~10英寸之间,屏幕大小差距过大会导致元素过...原创 2020-05-08 18:12:56 · 1587 阅读 · 3 评论 -
《第一行代码》第三版之UI开发入门(五)
本章我们将介绍UI开发的相关知识。常用控件包括了TextView、Button、EditText、ImageView、PrograssBar和AlertDialog等;三种布局包括了LinearLayout、RelativeLayout以及FrameLayout;ListView的简单用法、基于图片文字的ListView、利用ConvertView和ViewHolder去提升效率以及...原创 2020-05-06 17:46:09 · 2307 阅读 · 2 评论 -
《第一行代码》第三版之探究Activity(四)
在本小节,我们将探究Activity。首先是Activity的基本用法:手动创建、加载布局、xml注册、使用Toast和menu以及如何销毁一个Activity。其次是使用显式Intent、隐式Intent(action和category匹配)、putExtra传递数据、返回数据startActivityForResult;再者是七个生命周期和四种Activity状态;启动模式包括了...原创 2020-05-04 15:31:17 · 3170 阅读 · 1 评论 -
《第一行代码第三版》总结篇
今年4月郭霖大佬出版了新书《第一行代码》第三版,与前几版不同的是以下几点:(1)编程语言基于Kotlin;(2)基于Android10.0开发;(3)提到JetPack、Retrofit、MVVM等全新的知识点。一方面学校因为疫情原因迟迟不开学,另一方面大论文已经提交。有幸拿到签名版的书后,开始利用这段时间尽快学习、总结。笔记链接如下: 我的第一行Android代码(一...原创 2020-05-02 18:05:16 · 11909 阅读 · 0 评论 -
《第一行代码》第三版之Kotlin编程入门下篇(三)
2.6.Lambda编程 Java在1.8后加入Lambda编程语法支持,Kotlin一开始就支持,我们将介绍高阶函数、DSL等高级Lambda技巧。2.6.1.集合的创建与遍历 传统意义上的集合有List(ArrayList、LinkedList)、Set(HashSet)和Map键值对(HashMap)结构。需求是创建包含许多水果名称的集合,Kotlin中创建一个Arr...原创 2020-05-02 17:53:24 · 2246 阅读 · 4 评论 -
《第一行代码》第三版之Kotlin编程入门上篇(二)
本章我们将介绍Kotli编程主要知识点,分别是变量(val、var)和函数(fun main()和语法糖)、逻辑控制语句(if、when条件语句和for-in循环、while循环)、面向对象编程(类和对象、继承(open和:)、构造函数(主和次构造函数)、接口(interface和修饰符)、数据类(data)和单例类(object))、Lambda编程(集合创建与遍历(listof...原创 2020-05-02 17:53:08 · 4696 阅读 · 5 评论 -
《第一行代码》第三版之我的第一行Android代码(一)
第一章 开始启程,你的第一行Android代码1.1.Android简介1.1.1.Android系统架构 自下而上:Linux内核层(为硬件提供底层驱动。eg:显示驱动、音频驱动等)、系统运行时层(C/C++库和android运行时库,前者有Sqlite和O...原创 2020-04-29 20:14:15 · 24760 阅读 · 2 评论