小结
有了这么多优秀的开发工具,可以做出更高质量的Android应用。
当然了,“打铁还需自身硬”,想要写出优秀的代码,最重要的一点还是自身的技术水平,不然用再好的工具也不能发挥出它的全部实力。
在这里我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
下面开始学习 OkHttp 的使用
准备工作
// okHttp 3.14
implementation ‘com.squareup.okhttp3:okhttp:3.14.9’
添加权限
下面我们就可以正式开始了
关于 OkHttp 的请求方式有同步和异步两种,下面分别学习
get 和 post 都有同步和异步两种方式
同步
- get 的同步
get 的同步请求,同步请求在子线程中进行,更新 UI 要在 UI 线程中操作。
OkHttpClient okHttpClient = new OkHttpClient();
// 参数可以在后面拼接
Request request = new Request.Builder().url(BASE_URL).build();
Response response = null;
try {
response = okHttpClient.newCall(request).execute();
if (response.isSuccessful()) {
Log.i(TAG, "getDataSync: " + response.body().string());
handler.post(new Runnable() {
@Override
public void run() {
// 更新UI
}
});
}
} catch (IOException e) {
e.printStackTrace();
}
通过 response 的 isSuccessful 方法判断请求,在成功后就可以进行处理了。如果对 UI 进行操作需要在主线程处理。
- post 的同步
post 的同步请求只要在 get 的基础上,在 Request 的实例化后面拼接上 post() 方法就可以了。
下面是异步请求。
异步
异步请求的回调是在子线程中,更新 UI 需要在主线程操作。
- get 的异步
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(BASE_URL).build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// Failure
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
Log.i(TAG, "onResponse: " + response.body().string());
// 更新UI
}
}
});
Ps:异步请求的 enqueue() 方法会自动将请求部分放入工作线程处理。回调方法是在工作线程中的。
- post 的异步
post 的异步和 get 的异步基本相同。和上面同步一样,只要在 Request 构建是调用 post 就可以了。
最后
今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//bbs.youkuaiyun.com/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!