欢迎光临散文网 会员登陆 & 注册

【学习记录】安卓开发相关总结

2021-12-09 19:59 作者:幻雨之秋  | 我要投稿

我安卓开发也有段时间了,但不做总结的话,也是会忘记的。

在此我对自己使用过的部分组件,先做个文字总结。

等后期我有时间了,就做几期视频来讲一下,

主要讲如何使用,原理相关的讲的不深。

Retrofit:

Retrofit通过java接口和注解来描述的网络连接,然后通过client来

来设置请求头,如果要监听网络请求就在client里面创个方法,使用的是Okhttp来处理请求头和消息监听等操作。之后再调用addCallAdapterFactory,addConverterFactory来设置Rxjava和Gson用于处理网络获取的数据,通过设置好的接口,来设置网络域名类等信息。

之后使用接口回调并设置好Disposable来解决网络获取不统一的问题。


说一下你是如何使用Flowable背压式和Disposable优化网络性能的:

在设置网址的接口里,把属性改成Flowable,Flowable里自带Disposable的背压操作。

当数据处理不过来时,它就不会去处理后续的请求。


说一下你是怎么设置静态壁纸的:

调用的安卓自带的组件,因为我这边项目的画板功能是自定义View写的,保存的时候,第一次是Bitmap类型,所以我用的这个WallpaperManager。

说一下你是如何集成的三方极光推送、友盟:

极光推送和友盟的话,是看的文档接入的,配置好清单文件和初始化操作,就可以到控制台里,推送自己需要的消息。


说一下自定义View:

自制案例:https://github.com/17396743/Canvas_View


(案例里有写大量注释)

1、View的流程主要是measure测量,layout布局,draw绘制。其中measure确定View测量的宽高,layout确定View最终的宽高和四个顶点的位置,而draw是将View绘制到屏幕上。


2、MotionEvent是什么?包含几种事件,什么条件下会产生?

MotionEvent是处理手指后产生的系列事件。有四种事件,分别是刚接触屏幕、在屏幕上移动、从屏幕上松开、保持按下操作从当前控件转移到外层控件这个事件


3、 invalidate()和postInvalidate()的区别 ?

都是用来刷新View主要区别是invalidate()可以在主线程使用,子线程需要配合handler,而postInvalidate()可以直接在子线程使用。


4、SurfaceView和View的区别?

View和SurfaceView都是处理页面,区别在于View是主动刷新页面,而SurfaceView是被动处理。


5、自定义View如何考虑机型适配 ?

合理使用warp_content,match_parent

尽量是使用RelativeLayout相对布局

针对不同的机型,使用不同的布局文件放在对应的目录下,android会自动匹配

使用与密度无关的像素单位dp,sp

说一下RenderScript是怎么使用的:

创建一个RenderScript对象

创建一个RenderScript里面的一个工具ScriptIntrinsicBlur

通过Allocatin将要渲染的图片临时存储到内存中

调用ScriptIntrinsicBlur来控制模糊

调用Allocatin输出图片

 

说一下融云IM文字聊天是怎么接入的:

下载离线文件,直接通过添加Model的方式加载SDK

项目里主要加了带UI单聊功能,

后面的功能实现是看的文档一步步来的。


融云IM它获取Token比较简单,验证是用的

随机数、当前的时间戳、数据签名,还有一个由Appkey+随机数+当前的时间戳组成的字符串转成SHA1 哈希值 的 Token。

这一步文档里有提示。


注册信息是接入了创蓝万数的闪验 ,通过验证后,就可以获取到当前用户的个人信息。

类似粉丝数、作品数等数据是传到后台自己的服务器。













【学习记录】安卓开发相关总结的评论 (共 条)

分享到微博请遵守国家法律