2024年最全RxJava入门七问(一),2024年最新新鲜出炉的Android面试真题集锦我给你们整理出来了

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    @Override

    public void onCompleted() {

          Log.d(tag, "抓完收工!");

    }



    @Override

    public void onError(Throwable e) {

       Log.d(tag, "oh,no让他给跑了");

    }

};



不仅基本使用方式一样,实质上,在 RxJava 的 subscribe 过程中,Observer 也总是会先被转换成一个 Subscriber 再使用。所以如果你只想使用基本功能,选择 Observer 和 Subscriber 是完全一样的。当然他们也是有区别的,这里就不说了。



> 跟上文的被观察者类似,这里创建的Observer 或者Subscriber,是不会立即执行其回调方法的,只有当发生了订阅时(即observable.subscribe(observer)或者Observable.subscribe(Subscriber))时,Observer 或者Subscriber的回调方法才会执行



**谓语 subscribe()方法 即订阅**



创建了 Observable 和 Observer 之后,再用 subscribe() 方法将它们联结起来,整条链子就可以工作了。代码形式很简单:



observable.subscribe(observer);

// 或者:

observable.subscribe(subscriber);



Observable.subscribe(Subscriber) 的内部实现是这样的(仅核心代码):



// 注意:这不是 subscribe() 的源码,而是将源码中与性能、兼容性、扩展性有关的代码剔除后的核心代码。

// 如果需要看源码,可以去 RxJava 的 GitHub 仓库下载。

public Subscription subscribe(Subscriber subscriber) {

    subscriber.onStart();

    onSubscribe.call(subscriber);

    return subscriber;

}



可以看到,subscriber() 做了3件事:



1.  调用 Subscriber.onStart() 。这是一个可选的准备方法。

2.  调用 Observable 中的 OnSubscribe.call(Subscriber) 。在这里,事件发送的逻辑开始运行。从这也可以看出,在 RxJava 中, **Observable 并不是在创建的时候就立即开始发送事件,而是在它被订阅的时候,即当 subscribe() 方法执行的时候**。

3.  将传入的 Subscriber 作为 Subscription 返回。这是为了方便 unsubscribe().



### 4\. OK,主谓宾解释的还不错,帮我总结一下如何使用最基本的RxJava吧



**答:**



1.  创建Observable

2.  创建Observer或者Subscriber

3.  订阅:observable.subscribe(observer); 或者 observable.subscribe(subscriber);



### 5.总结起来虽然就三步,但是具体代码还是很罗嗦,特别是回调方法很多,例如:创建观察者Observer或者Subscriber 时,我只关心onNext()方法,并不关心onComplete()方法和onError()方法, 能不能简化点呢



**答:**



当然可以  

除了 subscribe(Observer) 和 subscribe(Subscriber) ,subscribe() 还支持不完整定义的回调,RxJava 会自动根据定义创建出 Subscriber 。形式如下:



Action1<String> onNextAction = new Action1<String>() {

    // onNext()

    @Override

    public void call(String s) {

        Log.d(tag, s);

    }

};

Action1<Throwable> onErrorAction = new Action1<Throwable>() {

    // onError()

    @Override

    public void call(Throwable throwable) {

        // Error handling

    }

};

Action0 onCompletedAction = new Action0() {

    // onCompleted()

    @Override

    public void call() {

        Log.d(tag, "completed");

    }

};



// 自动创建 Subscriber ,并使用 onNextAction 来定义 onNext()

observable.subscribe(onNextAction);

// 自动创建 Subscriber ,并使用 onNextAction 和 onErrorAction 来定义 onNext() 和 onError()

observable.subscribe(onNextAction, onErrorAction);

// 自动创建 Subscriber ,并使用 onNextAction、 onErrorAction 和 onCompletedAction 来定义 onNext()、 onError() 和 onCompleted()

observable.subscribe(onNextAction, onErrorAction, onCompletedAction);



> 注意到onNextAction 和onErrorAction的类型是Action1,而onCompletedAction 的类型是Action0 ,有何不同?

> 

> 目前只要知道:  

> \- Action1的回调方法call需要接收参数  

> \- Action0的回调方法call不需要接收参数就可以了



### 6.上面只是简化了建观察者Observer或者Subscriber 的回调方法,对于被观察者Observable,有什么简化的方法吗



**答:**



当然有了



Observable.create() 方法是 RxJava 最基本的创造事件序列的方法。基于这个方法, RxJava 还提供了一些方法用来快捷创建事件队列,例如:



*   just(T…): 将传入的参数依次发送出来。



    Observable observable = Observable.just("Hello", "Hi", "Aloha");

    // 将会依次调用:

    // onNext("Hello");

    // onNext("Hi");

    // onNext("Aloha");

    // onCompleted();



*   from(T\[\]) : 将传入的数组或 Iterable 拆分成具体对象后,依次发送出来。



String[] words = {“Hello”, “Hi”, “Aloha”};

        Observable observable = Observable.from(words);

        // 将会依次调用:

        // onNext("Hello");

        // onNext("Hi");

        // onNext("Aloha");

        // onCompleted();



上面 just(T…) 的例子和 from(T\[\]) 的例子,都和之前的 create(OnSubscribe) 的例子是等价的。



### 7.那你把最初写的警察抓小偷的例子,用简便方法写一遍



1.  第一种简便方法—>just



Observable.just(“我在偷第一个人”,“我在偷第二个人”,“我在偷第三个人”).subscribe(new Action1() {

 @Override

 public void call(String s) {

     Log.e("小偷发出的消息",s);

     Log.e("警察","警察采取了行动");

 }

});




1.  第二种简便方法—>from



String [] msg={“我在偷第一个人”,“我在偷第二个人”,“我在偷第三个人”};

Observable.from(msg).subscribe(new Action1() {

@Override

public void call(String s) {

    Log.e("小偷发出的消息",s);

    Log.e("警察","警察采取了行动");

}

});


最后

下面是辛苦给大家整理的学习路线

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

行动");

}

});


最后

下面是辛苦给大家整理的学习路线

[外链图片转存中…(img-aBdjKLHS-1715889318825)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 三、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值