随笔分类 - 《第一行代码》第二版阅读笔记
摘要:《第一行代码》阅读笔记(三十七)——productFlavors+广告SDK 未完待续 参考文献 Android多渠道productFlavors同时开发两个类似的app https://www.jianshu.com/p/9d3dfdc5256c
阅读全文
摘要:准备工作 首先大家看看郭神为咱们提供的接口 http://guolin.tech/api/china 2. 然后再去和风天气上面注册一个账号 http://guolin.tech/api/weather/register 点击“应用管理”->“创建应用” 之后根据提示分三步,输入自己的App名,是W
阅读全文
摘要:全局获取Context 不难看出Context一共有三种类型,分别是Application、Activity和Service。这三个类虽然分别各种承担着不同的作用,但它们都属于Context的一种,而它们具体Context的功能则是由ContextImpl类去实现的。由于Context的具体能力是由
阅读全文
摘要:ToolBar 首先:注意使用androidx.appcompat.widget.Toolbar而不是android.widget.Toolbar 在这一章节中,作者主要介绍了几个知识点。笔者在此梳理一些 xmlns:app ——第一行代码 这里使用xmlns:app指定了一个新的命名空间。思考一下
阅读全文
摘要:——第一行代码 基于位置的服务所围绕的核心就是要先确定出用户所在的位置。通常有两种技术方式可以实现:一种是通过GPS定位,一种是通过网络定位。GPS定位的工作原理是基于手机内置的GPS硬件直接和卫星交互来获取当前的经纬度信息,这种定位方式精确度非常高,但缺点是只能在室外使用看,室内基本无法接收到卫星
阅读全文
摘要:——第一行代码 服务( Service )是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。 不过需要注意的是,服务并不是运行在一
阅读全文
摘要:Android的多线程和Java的多线程差距并不大。 创建线程的方法 继承Thread public class MyThread extends Thread { @Override public void run() { //需要处理的逻辑 } } new MyThread().start();
阅读全文
摘要:未完待续 参考文献 Android MVP 架构 从最简单的Android MVP讲起 MVP模式从入门到精通
阅读全文
摘要:简介 现在android网络请求大部分已经换成了Retrofit2.0 +RxJava + okHttp3.0,Retrofit 使用接口的方式,负责请求的数据和请求的结果,OkHttp 负责请求的过程,RxJava 负责异步,各种线程之间的切换。毫无疑问这三剑客 已成为当前Android 网络请求
阅读全文
摘要:网络技术在编程中也是非常重要的一环,在android底层是通过HttpURLConnection实现的,后来出现了一款优秀的框架OkHttp,实现了对底层的封装。然后随着技术的进步,现在更多的是使用OkHttp+Retrofit+Rxjava网络框架。这里书中没有详细说,后面笔者会对这些部分进行一个
阅读全文
摘要:因为音频和视频播放十分相似,所以这里笔者自己制作了一个简单的Demo。让我们一起来看下吧。 简介 先来一张图片镇楼 音频播放MediaPlayer类 视频播放VideoView类 案例 第一步:先建三个活动 第二步:给主活动添加布局 <?xml version="1.0" encoding="utf
阅读全文
摘要:——第一行代码 内容提供器( Content Provider )主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。 内容提供器的用法一般有两种,
阅读全文
摘要:PermissionsDispatcher是一个基于注解、帮助开发者简单处理Android 6.0系统中的运行时权限的开源库。避免了开发者编写大量繁琐的样板代码。 开源地址:https://github.com/hotchemi/PermissionsDispatcher 文档介绍:http://h
阅读全文
摘要:首先本章就介绍了什么是危险权限,而不是危险权限的就是普通权限。那有那些危险权限呢,不用记,需要的时候直接来这个表里查。「Android中危险权限列表」同时可以访问http://developer.android.com/reference/android/Manifest.permission.ht
阅读全文
摘要:废话不多说,先看下结构 然后直接上代码 public class StudyProgressDBHelper extends SQLiteOpenHelper { //数据库名 private static final String DB_NAME = "progress.db"; //数据库版本号
阅读全文
摘要:这里郭神又是一顿称赞,反正强无敌就行了。笔者也咨询了一些大神、专家。对于初学者来说这个框架不仅十分方便,足以应付需求,而且郭神讲解通俗易懂,值得一看。 附上Github链接:https://github.com/LitePalFramework/LitePal 配置LitePal 总结起来就是一句话
阅读全文
摘要:书的开头就是一顿夸赞,反正SQLite强无敌! 写在最前 现在使用第三方的可视化工具使用的比较多了,这里简单提一嘴。 就是这个Navicat for Sqlite。安装了这个软件后,就要找到库文件位置。如果你是真机测试的话(虚拟机没试过,应该是一样的,不一样的话大家善用百度),右下角的Device
阅读全文
摘要:文件存储 ——第一行代码 文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中的,因而它比较适合用于存储一些简单的文本数据或二进制数据。如果你想使用文件存储的方式来保存一些较为复杂的文本数据,就需要定义一套自己的格式规范,这样
阅读全文
摘要:这里笔者就不重复书籍上面的话了,作者的表达十分凝练和清晰,主要说下笔者自己的感悟。学习到这里的时候笔者认为广播的存在就是打破显式intent传播的局限性,显式intent只能Activity之间互相传递,肯定是不满足我们的需求的。如果想要系统和APP,或者一个APP和另一个APP,甚至一个APP中不
阅读全文
摘要:广播的类型 标准广播( Normal broadcasts) 是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。标准广播的工作流程如图所示。 有序广播( Order
阅读全文