Android
文章平均质量分 84
飘渺仙缘
喜欢挑战去写新程序
展开
-
Android RxJava操作符的学习---过滤操作符----功能防抖
1. 需求场景 2. 功能说明 3. 具体实现// 注册控件 Button button; button = (Button)findViewById(R.id.button); /* * 1. 此处采用了RxBinding:RxView.clicks(button) = 对控件点击进行监听,需要引入依赖:c...转载 2018-11-08 21:28:30 · 330 阅读 · 0 评论 -
Android RxJava操作符的学习---变换操作符---网络请求嵌套回调
变换操作符的主要开发需求场景 = 嵌套回调(Callback hell) 下面,我将采用一个实际应用场景实例来讲解嵌套回调(Callback hell)1. 需求场景1.1 背景需要进行嵌套网络请求:即在第1个网络请求成功后,继续再进行一次网络请求如 先进行 用户注册 的网络请求, 待注册成功后回再继续发送 用户登录 的网络请求1.2 冲突嵌套实现网络请求较为复杂,即嵌...转载 2018-11-03 16:01:32 · 316 阅读 · 0 评论 -
Android RxJava操作符的学习---变换操作符
3.2 变换操作符3.2.1.作用对事件序列中的事件 / 整个事件序列 进行加工处理(即变换),使得其转变成不同的事件 / 整个事件序列具体原理 3.2.2.作用类型 应用场景 嵌套回调(Callback hell) 根据上述应用场景,常见的变换操作符类型包括: 3.2.3. 应用场景 & 对应操作符 介绍下面,我将对 RxJava2 中的变...转载 2018-11-03 15:20:40 · 166 阅读 · 0 评论 -
Android RxJava操作符的学习---功能性操作符--(有条件)网络请求轮询(结合Retrofit)
1. 需求场景 2. 功能说明采用Get方法对 金山词霸API 按规定时间重复发送网络请求,从而模拟 轮询 需求实现停止轮询的条件 = 当轮询到第4次时 采用 Gson 进行数据解析 3. 具体实现下面,我将结合 Retrofit 与RxJava 实现 有条件的轮询需求3.1 步骤说明添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的...转载 2018-11-07 22:04:47 · 566 阅读 · 0 评论 -
Android RxJava操作符的学习---创建操作符--(无条件)网络请求轮询
1. 需求场景 2. 功能说明本文将采用Get方法对 金山词霸API 按规定时间 重复发送网络请求,从而模拟 轮询 需求实现采用 Gson 进行数据解析 3. 具体实现下面结合 Retrofit 与RxJava 实现轮询需求3.1 步骤说明添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于传统Retrofit形式) 创建 ...转载 2018-11-03 14:33:46 · 331 阅读 · 0 评论 -
Android RxJava操作符的学习---创建操作符
RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求1. 简介RxJava 操作符的具体简介如下:2. 类型RxJava功能强大,所以其对应的操作符的类型也非常多 根据功能作用的不同,RxJava的操作符分类如下:3. 操作符详解注:在使用RxJava 2操作符前,记得在项目的Gradle中添加依赖:depen...转载 2018-11-03 11:37:03 · 157 阅读 · 0 评论 -
Android Retrofit的学习
一、简介一个基于 OkHttp 的 RESTful API 请求工具Retrofit 在使用时其实就充当了一个适配器(Adapter)的角色,主要是将一个 Java 接口翻译成一个 HTTP 请求对象,然后用 OkHttp 去发送这个请求核心思想:动态代理—通俗来讲,就是你要执行某个操作的前后需要增加一些操作,比如查看用户个人信息前需要判断用户是否登录,用户访问数据库后想清除用户的访问...转载 2018-11-01 21:42:37 · 6954 阅读 · 2 评论 -
第十五课:数据持久性(基于AndroidStudio3.2)
当应用程序从用户输入创建或捕获数据时,这些数据仅在应用程序的生命周期内可用。 只要应用程序尚未被运行时杀死,您就只能访问该数据。 关闭应用程序时,应用程序运行时创建的所有数据都将丢失。 Android为我们提供了多种保存数据的方式,使其可以比应用程序生命周期更长,并允许我们跨应用程序生命周期访问相同的数据。 表中列出了可供使用的存储选项。SharedPreferences 这是最简单的存...原创 2018-10-25 19:53:07 · 358 阅读 · 0 评论 -
Android RxJava操作符的学习---组合 / 合并操作符
3.3 组合 / 合并操作符3.3.1. 作用组合 多个被观察者(Observable) & 合并需要发送的事件 应用场景 组合多个被观察者 合并多个事件 发送事件前追加发送事件 统计发送事件数量 3.3.2. 类型根据上述应用场景,常见的组合 / 合并操作符 主要有: 3.3.3. 应用场景 & 对应操作符 介绍注:在使用RxJa...转载 2018-11-03 17:54:18 · 195 阅读 · 0 评论 -
Android RxJava操作符的学习---过滤操作符
3.5 过滤操作符 作用 过滤 / 筛选 被观察者(Observable)发送的事件 & 观察者 (Observer)接收的事件 应用场景 根据 指定条件 过滤事件 根据 指定事件数量 过滤事件 根据 指定时间 过滤事件 根据 指定事件位置 过滤事件 类型 根据上述应用场景,常见的过滤操作符 主要有: 3.5.1. 应用场景 &...转载 2018-11-08 20:36:46 · 208 阅读 · 0 评论 -
Android RxJava操作符的学习---组合合并操作符---联合判断多个事件
1. 需求场景需要同时对多个事件进行联合判断如,填写表单时,需要表单里所有信息(姓名、年龄、职业等)都被填写后,才允许点击 "提交" 按钮2. 功能说明此处采用 填写表单 作为联合判断功能展示 即,表单里所有信息(姓名、年龄、职业等)都被填写后,才允许点击 "提交" 按钮3. 具体实现原理 采用 RxJava 组合操作符中的combineLatest() 实现关于...转载 2018-11-05 21:34:47 · 334 阅读 · 0 评论 -
Android RxJava操作符的学习---组合合并操作符---从磁盘或内存缓存中获取缓存数据
1. 需求场景 2. 功能说明对于从磁盘 / 内存缓存中 获取缓存数据 的功能逻辑如下:3. 具体实现详细请看代码注释// 该2变量用于模拟内存缓存 & 磁盘缓存中的数据 String memoryCache = null; String diskCache = "从磁盘缓存中获取数据"; ...转载 2018-11-05 20:05:10 · 206 阅读 · 0 评论 -
Android RxJava操作符的学习---功能性操作符--网络请求出错重连(结合Retrofit)
1. 需求场景 2. 功能说明功能需求说明 功能逻辑 实例说明在本例子中:采用Get方法对 金山词霸API 发送网络请求通过 断开网络连接 模拟 网络异常错误(恢复网络即可成功发送请求) 限制重试次数 = 10次 采用 Gson 进行数据解析3. 具体实现下面,我将结合 Retrofit 与RxJava 实现 网络请求出错重连 功能3.1 步骤说明...转载 2018-11-07 22:22:10 · 260 阅读 · 0 评论 -
Android RxJava操作符的学习---组合合并操作符---合并数据源并展示
1. 需求场景 2. 功能说明即,同时向2个数据源获取数据 -> 合并数据 -> 统一展示到客户端3. 具体实现此处采用Merge() & Zip()操作符进行讲解,其中:Merge()例子 :实现较为简单的从(网络 + 本地)获取数据 & 统一展示 Zip()例子:结合Retrofit 与RxJava,实现较为复杂的合并2个网络请求向2...转载 2018-11-04 23:10:49 · 475 阅读 · 0 评论 -
Android Rxjava的学习
1.定义Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。RxJava用于异步执行任务,跟创建子线程执行任务无本质区别,优点在于让代码看起来整洁优雅些,并不能减少代码量总结:RxJava 是一个 基于事件流、实现异步操作的库...转载 2018-11-02 22:13:11 · 112 阅读 · 0 评论 -
Android RxJava操作符的学习---总结
转载 2018-11-09 23:28:36 · 157 阅读 · 0 评论 -
Android RxJava操作符的学习---条件 / 布尔操作符
3.6 条件 / 布尔操作符3.6.1. 作用通过设置函数,判断被观察者(Observable)发送的事件是否符合条件3.6.2. 类型RxJava2中,条件 / 布尔操作符的类型包括:下面,我将对每个操作符进行详细讲解3.6.3. 具体操作符详解注:在使用RxJava 2操作符前,记得在项目的Gradle中添加依赖:dependencies { co...转载 2018-11-09 23:26:31 · 190 阅读 · 0 评论 -
Android RxJava操作符的学习---功能性操作符
3.4 功能性操作符 作用 辅助被观察者(Observable) 在发送事件时实现一些功能性需求 实际应用场景 连接(订阅) 观察者 & 被观察者 线程调度(切换) 错误处理 事件生命周期操作 延时操作 重复发送操作 类型 根据上述应用场景,常见的功能性操作符 主要有: 3.4.3. 应用场景 & 对应操作符详解注:在使用RxJav...转载 2018-11-07 21:38:28 · 242 阅读 · 0 评论 -
第十四课:调试(基于AndroidStudio3.2)
当写的代码就会变得越来越大,越复杂。 将错误引入代码的可能性会增加,并且它们将变得更难以发现。调试程序有几种方法(和工具):决定使用哪一种取决于您尝试进行故障排除的错误类型。 话虽如此,让我们试着回顾一下你将遇到的一些最常见的错误。Syntax errors. 【语法错误】这些是由Java编译器生成的; 它发生是因为你在代码中犯了错误。 这些错误可能很简单,比如忘记语句末尾的分号,或者在将...原创 2018-10-23 21:23:22 · 1440 阅读 · 1 评论 -
第十一课:UI Elements:Fragments(基于AndroidStudio3.2)
运行Android APP的设备繁多,屏幕大小更是多种多样。针对不同屏幕尺寸,通常情况下,开发者都是先针对手机开发一套源代码,然后拷贝一份,修改布局以适应大屏幕设备,或平板,电视等。为了决解这样的麻烦,Google推出了Fragment。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,Fragment拥有自己的生...原创 2018-10-22 10:56:33 · 677 阅读 · 0 评论 -
第十六课:应用分发(基于AndroidStudio3.2)
在某些时候,您可能希望将应用程序分发给广泛的受众。 Android应用程序可以非常自由地分发,没有太多限制:您可以在网站上下载它,甚至可以直接通过电子邮件将应用程序发送给用户,但许多开发人员选择在谷歌等市场上发布应用程序或亚马逊最大化范围。无论您打算如何分发,在向公众发布应用程序之前,您需要执行某些步骤,或者至少要注意这些步骤。发布应用程序可能是一项非常复杂的活动,并且不仅限于应用程序分发的技术...原创 2018-10-25 20:32:01 · 488 阅读 · 0 评论 -
第八课:隐式Intent(基于AndroidStudio3.2)
Android的程序交互方法非常独特,因为它非常以用户为中心。它为用户提供了很多权力,可以选择如何操作和创建数据。我们来看一个Android设备的常见使用场景。 用户打开“联系人”例如,应用并选择John Doe的联系方式。例如,有一个电子邮件地址,一部手机和一个Twitter名称。 用户可以点击John的每一个联系点,每次Android都会启动一个不同的应用程序,默认的电子邮件客户端,拨号器...原创 2018-10-18 11:48:30 · 558 阅读 · 0 评论 -
第七课:返回子活动结果(基于AndroidStudio3.2)
在上一节中,我们发起了一个子活动,我们传递了一些数据。 在这我们将看一下如何从子活动中返回数据。下图显示了如何解决这个问题的事件顺序。 我们将从MainActivity启动子活动。 这可以通过创建一个来管理显式的intent对象并调用startActivityForResult。 活动可能会启动多个其他活动,每个活动都可以返回一些结果。 当这些结果回来时,它们...原创 2018-10-18 10:41:02 · 420 阅读 · 0 评论 -
APK反编译apktool+dex2jar+jd-gui
一、工具 1.1、使用工具apktool (资源文件获取)作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar(源码文件获取)作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui (源码查看)作用:查看APK中classes.dex转化成出的jar文件,即源码文件1.2工具下载 apktool下载地址:https://...原创 2018-10-07 19:13:12 · 1062 阅读 · 0 评论 -
第四课:两种监听器方法(基于AndroidStudio3.2)
一、布局在主程序界面上添加新按钮,如以前一样。创建一个 Activity,名字为MeventActivity添加一个三个Button控件。添加调用该窗口程序给按钮“多事件” Button btn2 = (Button) findViewById(R.id.button3); btn2.setOnClickListener(new View.OnClickListen...原创 2018-10-13 18:28:25 · 3068 阅读 · 0 评论 -
第三课:竞猜数字(基于AndroidStudio3.2)
继续学习事件处理,不继续新建工程,在原有工程基础上进行测试,本例主要是实现竞猜数字大小的功能。一、添加一个按钮,竞猜数字按钮参考以前课程,最终效果如下:记住打开 app > res > values > strings.xml。添加一个名称为“button_jingc”并且值为“竞猜数字”的键。二、创建一个 Activity在 Project 窗口中,右键点击 ap...原创 2018-10-13 15:43:41 · 1339 阅读 · 0 评论 -
安装JDK+SDK+eclipse+Android Studio+模拟器(夜神OK,AVD黑屏)
Android SDK版本与Java编译器版本是有对应关系的,若不一致可能会导致SDK下的SDK Mamager 和AVD Mamager等其他相关工具打不开,出现一闪而过的情况。Android 4.4以上(包括Android 4.4)才可以用1.7版本的编译器, 在Android 4.4以下的只能用1.5和1.6版本的编译器,不能用1.4版本及其以下版本android 5.0,即sdk 21...原创 2018-10-07 00:15:41 · 6387 阅读 · 0 评论 -
第二课:启动一个新的 Activity(基于AndroidStudio3.2)
完成上一课的学习后,我们已构建了一个应用,它可以显示一个 Activity(单一屏幕)并带有一个文本字段和一个按钮。在本课中,您将向 MainActivity 添加一些代码,这些代码可在用户点按 Send 时启动一个新的 Activity 来显示消息。一、响应 Send 按钮按照以下步骤操作,在 MainActivity.java 中添加一个由按钮调用的函数:1.在文件 app > j...原创 2018-10-12 21:01:43 · 5061 阅读 · 2 评论 -
第一课:构建简单的界面(基于AndroidStudio3.2)
markdown编辑器中可以使用的6种空格标记 在本课中,将使用 Android Studio Layout Editor 创建一个布局,其中包括一个文本框和一个按钮。在下一课中,您会将文本框的内容发送到另一个 Activity,让应用响应按钮点按操作。 ...原创 2018-10-12 10:52:44 · 9901 阅读 · 7 评论 -
sdk manager闪退(因为在Android Studio中更新sdk后)
为解决AVD黑屏,在Android Studio对sdk manager直接进行了更新操作(见《 AVD黑屏Emulator: ERROR: resizing partition e2fsck failed with exit code 8 解决》),后来发现在sdk manage安装目录运行sdk manage发生闪退。网上的find_java.bat等怀疑JAVA路径,测试后发现自己的路径没...原创 2018-10-11 21:05:27 · 1408 阅读 · 0 评论 -
第九课:活动的生命周期(基于AndroidStudio3.2)
对于Android程序员来说,掌握活动的生命周期非常重要,当我们深入了解活动的生命周期以后,才能写出更流畅的APP,让我们更好的去分配资源,让应用程序有更好的用户体验。Mobile apps不是真正在较小屏幕上运行的desktop apps。我们不像使用desktop apps那样使用mobile apps。当我们使用desktop app时,它通常因为我们专注于手头的任务会保持打开和活动很长...原创 2018-10-18 17:59:13 · 1214 阅读 · 0 评论 -
第五课:多活动的工作机制(基于AndroidStudio3.2)
一、组件激活Android平台在松散耦合方面很有用。 一个应用程序只不过是一个manifest文件和每个组件保存在一起的组件集合,组件通过向其发送消息来激活。 如果你想显示(激活)一个活动,你需要创建一条消息,将其发送到运行时,让运行时为您激活它。您无法直接处理组件。class FirstActivity extends AppCompatActivityimplements View.On...原创 2018-10-15 16:10:43 · 402 阅读 · 1 评论 -
第十三课:继续Asynctask-调用远程图片(基于AndroidStudio3.2)
一、测试一下面通过代码演示一个典型的异步处理的实例--加载网络图片.网络操作作为一个不稳定的耗时操作,从4.0开始就被严禁放入主线程中.所以在显示一张网络图片时,我们需要在异步处理中下载图片,并在UI线程中设置图片1、 新建项目Async2- 主窗口增加一个按钮- 增加新的Activity,名称为ImageActivity,添加imageView和progressBar...原创 2018-10-23 11:41:32 · 484 阅读 · 0 评论 -
第十二课:Running in the Background(基于AndroidStudio3.2)
现在我们对UI元素和屏幕有了一些了解,我们需要让它们具有响应性。响应力并不仅仅与速度有关 - 你可以在一段时间内完成多少工作。更重要的是应用程序的速度有多快。当人们说应用程序响应时,通常他们的意思是应用程序不会阻止他们做他们正在尝试的事情去做。它不会妨碍他们。如果你曾经使用过一个只是冻结的应用程序点击某个按钮,你可以欣赏我们正在谈论的内容。它不会阻止。想象阻止就像打电话给某人一样。拨号时,您会听...原创 2018-10-22 21:37:01 · 1210 阅读 · 0 评论 -
Eclipse+Genymotion
1、在线配置点击help >>install new software>>add输入Name:genymoblieLocation: http://plugins.genymotion.com/eclipse出现以下界面。将下面的“Group items by category” 取消勾选,勾选列表的Genymotion Eclipse Tool,点击下一步...原创 2018-10-10 11:45:07 · 720 阅读 · 0 评论 -
第十课:UI Elements:colors+Themes+AppBar(基于AndroidStudio3.2)
谷歌发布了一套UI方法指南; 它被称为material design,和您可以在他们的网站https://material.io上阅读更多相关信息。 这是一个很重要的话题,我们不打算在这里介绍它。 但在本课中,我们将讨论三件事来助你进一步研究方向。 这是 the themes and colors, the AppBar, and Fragments.一、Themes and Colors...原创 2018-10-19 11:43:03 · 637 阅读 · 0 评论 -
Android Stuido 3.2基本配置+Genymotion及测试
一、Android Stuido基本配置可以通过快捷键Ctrl+Alt+S或点击“Configure”后弹出菜单项的Settings打开设置窗口。1、主题配置可以设置成目前比较流行的Darcula主题,通过Appearance & Bahavior > Apperance下的UI Options选项设置。2、默认字体偏小个了,可以根据需要配置合适自己的字体大小,通过Edi...原创 2018-10-10 09:09:56 · 1820 阅读 · 0 评论 -
Android模拟器Genymotion安装
一、简介Genymotion是一款出色的跨平台的Android模拟器,具有容易安装和使用、运行速度快的特点,是Android开发、测试等相关人员的必备工具。和sdk的模拟器类似,能够支持windows,liunx,mac等操作系统,他比我们SDK的模拟器快很多。官网地址:https://www.genymotion.com在Genymotion官网上注册一个账号地址:https://ww...原创 2018-10-09 20:29:33 · 2213 阅读 · 0 评论 -
第六课:计算两数的GCF(最大公因数)(基于AndroidStudio3.2)
本例子通过计算两个数字的GCF(最大公因数)来探索如何将数据从主活动传递到第二个活动。The MainActivity will do the followingWait for user input (two numbers), so we’ll create two plain text viewobjectsRestrict the inputs to only digits; i...原创 2018-10-15 20:54:40 · 706 阅读 · 0 评论 -
Git安装
一、Git介绍分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git所有的操作不需要在线进行;这意味着Git的速度要比S...转载 2018-10-09 09:42:21 · 1871 阅读 · 0 评论