来源:蜘蛛抓取(WebSpider)
时间:2016-05-04 08:24
标签:
rxandroid 实例解析
Android 开发有哪些新技术出现_百度知道
Android 开发有哪些新技术出现
sky_sdk,很多在以前大型服务器开发上使用的技术都被应用到了移动开发,曾经看起来很棘手的问题,而且各种支持库都有了:这是一个专为设计移动端 UI 的设计工具,Kotlin 融入了很多现代编程语言的思想。 插件化:已经红遍了大江南北。现在 Android 开发社区对 MVP 模式讨论越来越热,RxAndroid 把 RxJava 带到 Android 环境中、开发工具 Android Studio:ReactiveX/,换一种思想编程。抛弃沉重的 Java 语法,就很容易使代码陷入混乱,觉得 MVP 是非常适合 Android APP 开发。在 Android 开发上、UI设计 Material DRxAndroid: Google 官方放弃 Eclipse 和 Android Studio 普及,作为开发者、编程“语言” Kotlin,很多 App 开始使用插件来分模块构建相对独立的功能、Live code template,提供给网页访问本地资源的能力,项目一复杂:这是因为开始官方支持 DataBinding,domokit/。MVP for Android。 4,接受新的语言。 Sky,把 Web 和 Native 打通、支持自动生成 Parcelable 实现等等。 Sketch 3,大部分信息展示都是通过 H5 来完成:针对大型 Android 项目,但是使用在 Android 确实一个新的尝试,让你只关心你的数据和业务: 跨平台一直是程序员的梦想、开发模式 Dagger 2:与 React Native 类似,典型的就是微信。特别值得一体的是。数据绑定在 Windows WPF 和 Web 已经非常常见:完全使用 HTML 5 开发 A A fast dependency injector for Android and Java。但是折中方案在很多情况下是非常适合的,目前还不成熟,瞬间就很优雅的解决了,把 MVVM 直接带到 Android 中,Dagger 2 现在由 Google 亲自接管,使用 Web 开发语言来做移动平台的开发。Android App 越来越被当成严肃的大型项目来构建,同时通过 Hybird 方式?,而且移动应用的跨平台解决方案也很多:android UI设计MVVM设计模式讨论,更有利于开阔你的思路和加深对语言的理解,让这个解决方案带上了光环。 React Nativ,一定会让你的写代码的生活更加美好,无疑是一个非常重大的影响。AS 虽然不算新,为什么不来试试,持续关注这个更新列表 Recent Changes:作为 Android 领域的 Swift。这也对 Android 开发来说,它非常高效的开发效率: how to organize the presentation layer。 2。 MVVM,不用懂那么复杂的 PS 使用。 3。 RxAndroid,但是对 Android Studio 这个软件的更新速度快的惊人:函数响应式编程(Functional Reactive Programming)也不是新内容,编写 Android 程序,特别是在 Java 语言的使用上败诉之后,了解新语言的发展趋势。例如支持很多注解代码提示注解。很多时候:因为 Android 并没有严格的业务和界面区分。 MVP。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,有大量的新功能发布,因为 Facebook 的参与和力推。 Dagger ‡,React Native,使用 Dagger 来松耦合模块 1,作为开发者,特别是 Google 官方出了一个支持库 Android Design Support Library,使用 Kotlin 并不会让你付出什么代价,这方面的讨论实在太多了。 Hybrid。Android 开发分模块开发,你也可以看成是数据的处理和流动,绝对让你如沐新风,这可能会有一些作为呢,听说 Android 的 SDK 也马上会到来? 使用Kotlin进行Android开发,但是这是 Google 自身推出的,虽然这个只是一个尝试,作为开发者:依赖注入并不是什么新技术,也可以做非常专业设计
资深电脑人
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android 开发有哪些新技术出现_百度知道
Android 开发有哪些新技术出现
提问者采纳
Android App 越来越被当成严肃的大型项目来构建,大部分信息展示都是通过 H5 来完成:依赖注入并不是什么新技术,特别是 Google 官方出了一个支持库 Android Design Support Library。MVP for Android,就很容易使代码陷入混乱,domokit/。但是折中方案在很多情况下是非常适合的:已经红遍了大江南北:完全使用 HTML 5 开发 App,Kotlin 融入了很多现代编程语言的思想,RxAndroid 把 RxJava 带到 Android 环境中,使用 Web 开发语言来做移动平台的开发:android UI设计MVVM设计模式讨论;RxAndroid,更有利于开阔你的思路和加深对语言的理解,让你只关心你的数据和业务,听说 Android 的 SDK 也马上会到来,作为开发者,持续关注这个更新列表 Recent Changes。 Sky。很多时候,因为 Facebook 的参与和力推。抛弃沉重的 Java 语法,把 MVVM 直接带到 Android 中,一定会让你的写代码的生活更加美好,作为开发者: 跨平台一直是程序员的梦想,同时通过 Hybird 方式。在 Android 开发上? 使用Kotlin进行Android开发: Google 官方放弃 Eclipse 和 Android Studio 普及,编写 Android 程序,而且移动应用的跨平台解决方案也很多,了解新语言的发展趋势、支持自动生成 Parcelable 实现等等,而且各种支持库都有了,但是这是 Google 自身推出的:作为 Android 领域的 Swift:与 React Native 类似。 3。 Sketch 3。例如支持很多注解代码提示注解。这也对 Android 开发来说:针对大型 Android 项目?,特别是在 Java 语言的使用上败诉之后,使用 Kotlin 并不会让你付出什么代价、UI设计 Material Design,为什么不来试试:函数响应式编程(Functional Reactive Programming)也不是新内容,典型的就是微信。 Hybrid。 React Nativ,无疑是一个非常重大的影响,把 Web 和 Native 打通,但是使用在 Android 确实一个新的尝试:ReactiveX/,Dagger 2 现在由 Google 亲自接管。现在 Android 开发社区对 MVP 模式讨论越来越热,很多在以前大型服务器开发上使用的技术都被应用到了移动开发,换一种思想编程,觉得 MVP 是非常适合 Android APP 开发。 Dagger ‡,接受新的语言。数据绑定在 Windows WPF 和 Web 已经非常常见,使用 Dagger 来松耦合模块。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具;sky_sdk。 4,让这个解决方案带上了光环,你也可以看成是数据的处理和流动、Live code template,曾经看起来很棘手的问题,项目一复杂,提供给网页访问本地资源的能力,绝对让你如沐新风:这是因为开始官方支持 DataBinding。 RxAndroid,瞬间就很优雅的解决了,目前还不成熟。 MVVM。 2、开发模式 Dagger 2,很多 App 开始使用插件来分模块构建相对独立的功能:因为 Android 并没有严格的业务和界面区分。Android 开发分模块开发、编程“语言” Kotlin,但是对 Android Studio 这个软件的更新速度快的惊人。特别值得一体的是,虽然这个只是一个尝试。 插件化,这可能会有一些作为呢,它非常高效的开发效率Android Studio。 MVP; A fast dependency injector for Android and Java: how to organize the presentation layer,有大量的新功能发布。AS 虽然不算新,React Native,这方面的讨论实在太多了
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android 开发有哪些新技术出现_百度知道
Android 开发有哪些新技术出现
1、开发工具 Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes,一定会让你的写代码的生活更加美好。 2、编程“语言” Kotlin:作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行Android开发。 React Nativ: 跨平台一直是程序员的梦想,而且移动应用的跨平台解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,听说 Android 的 SDK 也马上会到来,React Native。 Sky:与 React Native 类似,使用 Web 开发语言来做移动平台的开发,虽然这个只是一个尝试,但是这是 Google 自身推出的,特别是在 Java 语言的使用上败诉之后,这可能会有一些作为呢,domokit/sky_sdk。 3、开发模式 Dagger 2:依赖注入并不是什么新技术,但是使用在 Android 确实一个新的尝试。Android App 越来越被当成严肃的大型项目来构建,很多在以前大型服务器开发上使用的技术都被应用到了移动开发。Android 开发分模块开发,使用 Dagger 来松耦合模块。特别值得一体的是,Dagger 2 现在由 Google 亲自接管。 Dagger ‡ A fast dependency injector for Android and Java。 MVP:因为 Android 并没有严格的业务和界面区分,项目一复杂,就很容易使代码陷入混乱。现在 Android 开发社区对 MVP 模式讨论越来越热,觉得 MVP 是非常适合 Android APP 开发。MVP for Android: how to organize the presentation layer。 RxAndroid:函数响应式编程(Functional Reactive Programming)也不是新内容,RxAndroid 把 RxJava 带到 Android 环境中。很多时候,编写 Android 程序,你也可以看成是数据的处理和流动,换一种思想编程,曾经看起来很棘手的问题,瞬间就很优雅的解决了:ReactiveX/RxAndroid。 MVVM:这是因为开始官方支持 DataBinding,把 MVVM 直接带到 Android 中。数据绑定在 Windows WPF 和 Web 已经非常常见,它非常高效的开发效率,让你只关心你的数据和业务。这也对 Android 开发来说,无疑是一个非常重大的影响:android UI设计MVVM设计模式讨论?。 插件化:针对大型 Android 项目,很多 App 开始使用插件来分模块构建相对独立的功能。 Hybrid:完全使用 HTML 5 开发 App,目前还不成熟。但是折中方案在很多情况下是非常适合的,典型的就是微信,大部分信息展示都是通过 H5 来完成,同时通过 Hybird 方式,把 Web 和 Native 打通,提供给网页访问本地资源的能力。 4、UI设计 Material Design:已经红遍了大江南北,这方面的讨论实在太多了,而且各种支持库都有了,特别是 Google 官方出了一个支持库 Android Design Support Library。 Sketch 3:这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计。
其他类似问题
为您推荐:
提问者采纳
domokit/,使用 Web 开发语言来做移动平台的开发。编程“语言”Kotlin。Android Studio,而且移动应用的跨平台解决方案也很多,生怕有些东西说错。React Native,更有利于开阔你的思路和加深对语言的理解,让大家笑话: 与 React Native 类似,React Native,其实了解 Android 的发展趋势、支持自动生成 Parcelable 实现等等。题主提的这个问题,Kotlin 融入了很多现代编程语言的思想。例如支持很多注解代码提示注解,绝对让你如沐新风,相信很多开发者都有自己的话要说,为什么不来试试,可能对开发者更有帮助,我这里主要说一下主要的 Android 的主要新技术发展。在 Android 开发上。抛弃沉重的 Java 语法。Android 的发展确实太快了: Google 官方放弃 Eclipse 和 Android Studio 普及。Sky。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,听说 Android 的 SDK 也马上会到来,作为开发者,每年的都有很多新东西出现,有大量的新功能发布,让这个解决方案带上了光环,一定会让你的写代码的生活更加美好,想要覆盖所有新东西感觉也不太可能: 跨平台一直是程序员的梦想。AS 虽然不算新: 作为 Android 领域的 Swift,但是对 Android Studio 这个软件的更新速度快的惊人、Live code template,因为 Facebook 的参与和力推? 使用Kotlin进行Android开发,作为开发者,使用 Kotlin 并不会让你付出什么代价,持续关注这个更新列表 Recent Changes ,接受新的语言,了解新语言的发展趋势,在大神云集的地方,但是这是 Google 自身推出的,特别是在 Java 语言的使用上败诉之后,这可能会有一些作为呢第一次在知乎回答问题,感觉有些战战兢兢,虽然这个只是一个尝试
来自团队:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在安卓上使用RxJava - ImportNew
| 标签: ,
如果你做过Android(和Java)的开发,很有可能已经听说过RxJava了。RxJava是由Netflix开发的响应式扩展(Reactive Extensions)的Java实现。引用,Reactive Extensions是这样一个第三方库:它结合了可观察集合和LINQ式查询以达到异步和基于事件的编程效果。Netflix将这个库托管到了Github上,支持Java6以上的版本并且使它可以用于Android App开发。
本篇是介绍RxJava和Android的系列文章的第一篇,将会介绍如何在Android中使用RxJava observables(基于Square的Retrofit组件)创建REST API客户端。
我们从添加所需的库文件开始。如果你用Maven的话,只需将下面的dependencies(依赖库)加到pom.xml中即可:
&dependency&
&groupId&com.squareup.retrofit&/groupId&
&artifactId&retrofit&/artifactId&
&version&1.2.2&/version&
&/dependency&
&dependency&
&groupId&com.netflix.rxjava&/groupId&
&artifactId&rxjava-android&/artifactId&
&version&0.14.6&/version&
&/dependency&
在本文中,我们将用气象地图开放平台(OpenWeatherMap) API作为演示示例。 是一个免费的天气数据API,非常易于配置和使用,调用时只需传入位置信息(城市名或者是地理坐标)作为参数即可,具体效果请参见这个。它默认传输的是JSON格式的数据(但也可以配置为XML或HTML格式)。精度和温度单位也是可以配置的,更多详情请看。
通常要实现调用一个API需要如下这几个步骤(每个步骤都有一堆公式化代码):
创建所需的模型类(必要时,添加上注解)。
实现请求—回应管理的网络层代码,并带错误处理。
用后台线程实现请求调用(一般是用异步任务的形式实现),用一个回调函数(Callback Function)来实现在UI线程上呈现回应信息。
创建模型类
第一步我们可以依靠一些类似的JSON-POJO生成工具(半)自动化完成。OpenWeather API的模型类如下:
public class WeatherData {
public List&Weather&
public static class Coordinates {
public static class Local {
public static class Weather {
public static class Main {
public double temp_
public double temp_
public double sea_
public double grnd_
public static class Wind {
public static class Rain {
public static class Cloud {
用Retrofit实现网络调用
第二步中网络调用的实现通常我们需要写一大堆公式化的代码,但如果用Square公司的来实现的话将大大减少代码量。只需要创建一个接口类(用注释来描述整个请求),然后用RestAdapter.Builder来创建客户端就行了。Retrofit也可以用来完成JSON的序列化与反序列化。
private interface ApiManagerService {
@GET(&/weather&)
WeatherData getWeather(@Query(&q&) String place, @Query(&units&) String units);
上面的示例中我们可以看到,方法前的注释是由一个HTTP方法(我们这里用的是GET,当然你也可以按需要用Retrofit实现POST、PUT、DELETE和HEAD方法)和一个相对路径(基本路径是由RestAdapter.Builder提供的)。@Query注释用于组装请求参数,我们这有两个参数,一个是place(代表位置),另一个是units计量单位。
我们来看一个具体的调用示例(实际代码中应该把这个调用放到一个非UI线程里)。这段代码还是比较容易理解的:
final RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(&http://api.openweathermap.org/data/2.5&)
final ApiManagerService apiManager = restAdapter.create(ApiManagerService.class);
final WeatherData weatherData = apiManager.getWeather(&Budapest,hu&, &metric&);
怎么样,很简单吧,你只需要很少的代码就实现了整个调用过程,这就是Retrofit的威力,要了解更多,请点击。
用RxJava实现响应式编程
现在我们就进入第三步了:RxJava部分!我们这里示例将用它来实现异步的请求调用。但这并不是RxJava所有的功能,以下对RxJava的介绍引用自Netflix的Github 知识库:
RxJava 是一个在Java虚拟机上实现的响应式扩展库:提供了基于observable序列实现的异步调用及基于事件编程。
它扩展了观察者模式,支持数据、事件序列并允许你合并序列,无需关心底层的线程处理、同步、线程安全、并发数据结构和非阻塞I/O处理。
它支持Java5及更高版本,并支持其他一些基于JVM的语言,如Groovy、Clojure和Scala。
我们假设你已经对RxJava有一些了解。如果没有的话,强烈建议先看看和Netflix在的前几页。
在最后的这个示例中,我们将实现一个API 管理器负责生成observable对象,并完成多并发调用(每个调用都请求同一个地址,但参数不同)。
首先我们需要将前面创建的接口类,换为这个类:
public class ApiManager {
private interface ApiManagerService {
@GET(&/weather&)
WeatherData getWeather(@Query(&q&) String place, @Query(&units&) String units);
private static final RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(&http://api.openweathermap.org/data/2.5&)
private static final ApiManagerService apiManager = restAdapter.create(ApiManagerService.class);
public static Observable&WeatherData& getWeatherData(final String city) {
return Observable.create(new Observable.OnSubscribeFunc&WeatherData&() {
public Subscription onSubscribe(Observer&? super WeatherData& observer) {
observer.onNext(apiManager.getWeather(city, &metric&));
observer.onCompleted();
} catch (Exception e) {
observer.onError(e);
return Subscriptions.empty();
}).subscribeOn(Schedulers.threadPoolForIO());
我们先来看下getWeatherData()这个方法,它调用了Observable.create()方法并向方法传入一个Observable.OnSubscribeFunc的实现,以此得到一个Observable对象并返回。并且一旦Observable对象被订阅(subscribed)后就会开始工作。Observable每次处理的结果都会当作参数传给onNext()方法。因为我们这里只是想实现网络请求的并发调用,所以只需要让每个Observable对象中调用一次请求即可。代码最后调用onComplete()方法。这里的subscribeOn()方法很重要,它决定了程序将选用哪种线程。这里调用的是Schedulers.threadPoolForIO(),此线程用于优化IO和网络性能相关的工作。
最后一步是要实现这个API调用。下面的代码实现了并发网络请求,每个请求都使用不同的调用参数异步调用同一个url:
Observable.from(cities)
.mapMany(new Func1&String, Observable&WeatherData&&() {
public Observable&WeatherData& call(String s) {
return ApiManager.getWeatherData(s);
.subscribeOn(Schedulers.threadPoolForIO())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1&WeatherData&() {
public void call(WeatherData weatherData) {
// do your work
Observable.from()方法将城市名称数组转化为一个observable对象,将数组里的字符串提供给不同的线程。然后mapMany()方法将会把前者提供的每一个字符串都转化为observable对象(译注:新对象包含的是weatherData对象数据)。这里的转化通过调用ApiManager.getWeatherData()完成。
这里还是注册在I/O线程池上。在Android系统上,如果需要把结果展示在UI上,就必须把数据发布给UI线程处理。因为我们知道,在Android上只有最原始的那个创建界面的线程才可以操作界面。这里只需要用observeOn()方法调用AndroidSchedulers.mainThread()即可。subscribe()方法的调用将触发observable对象,我们可以在这里处理observable对象发出的结果。
这个示例展示了RxJava强大的功能。如果没有Rx,我们需要创建N个线程去调用请求,然后通过异步方式把处理结果交给UI线程。使用Rx只需编写很少的代码就完成工作,使用它强大的功能创建、合并、过滤和转化observable对象。
RxJava可以在开发安卓App时,作为一个强大的处理并发的工具使用。虽然要熟悉它还是需要一些时间,但是磨刀不误砍柴工,一旦掌握了它,将给你带来很大帮助。响应式扩展库是个很好的想法,我们把它用于安卓程序的开发,已经用了好几个礼拜了(在不久的将来,我们产品的异步任务处理将完全基于它完成)。越是了解它,你就越会爱上它。
还想看点其他资料不?看看吧,它讲的是RxJava如何进行错误处理。
原文链接:
- 译文链接: [ 转载请保留原文出处、译者和译文链接。]
关于作者:
(新浪微博:)
@Transactional 的事务开启 ,或者是基于接口的 或者是基于类的代理被创建。所以在同一个...
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2016 ImportNew