android知识体系

android体系学习:minmin博客gityuan博客


android

view相关
Activity、View、Window的理解
探索Android中selector和shape的结合使用
(设置一个按钮选中时的背景图片的变化,我们创建了四个XML文件,这显然是没有必要的,我们可以尽可能少的把这些内容整合到一个XML中.)


模式

MVC
优点:容易实现。
缺点:activity既要负责视图的显示又要加入控制逻辑,承担的功能过多,代码量大也就不足为奇Android中经常会出现数千行的Activity代码。
mvp从google todo-mvp示例再次学习MVP
Model:数据层,负责与网络层和数据层的逻辑交互
View:UI层,负责显示数据,并向Presenter报告用户的行为【即具体的activity/fragment】
Presenter:从Model拿到数据,应用到UI层,管理UI的状态,响应用户的行为
(使用契约类来管理view与presenter所有接口)
(activity负责创建view与presenter实例,使两者关联起来:实例化具体presenter时,传入具体的view,使得具体的presenter拥有view实例。同时,presenter实例化初始化构造函数调用了setPresenter方法,使得view实例中拥有了presenter对象)
优点:

  • 分离了视图逻辑(view)和业务逻辑(presenter),降低了耦合;
  • Activity只处理生命周期的任务,代码变得更加简洁;

缺点:

  • Activity需要实现各种跟UI相关的接口,同时要在Activity中编写大量的事件,然后在事件处理中调用presenter的业务处理方法,View和Presenter只是互相持有引用并互相做回调,代码不美观;
  • 复杂的业务同时会导致presenter层太大,代码臃肿的问题。

MVVM
android mvvm学习
MVVM是Model-View-ViewModel的简写,MVVM在MVP的基础上实现了数据视图的绑定(DataBinding),当数据变化时,视图会自动更新;视图变化时,数据也会自动更新。
相对于mvp 实现了数据和视图的双向绑定,极大的简化代码


网络

  • 一个浏览器是如何工作的
    (TCP 三次握手中要想得到接收方的 MAC 地址,需要通过对方的 IP 地址获取,对方的 IP 需要通过 DNS 解析)
    DNS解析URL为IP地址–>TCP连接服务器–>客户端开始向服务器主动发起HTTP请求–远程服务器找到资源并使用 HTTP 响应返回该资源
  • Android网络编程面试题集

gradle

Gradle指南


其他

科普androidx
内存溢出和内存泄漏的区别?


项目学习

时间进度(一款简洁的时间进度app)
实现(实现一些功能)

BaseRecyclerViewAdapterHelper使用


彩蛋系列

Android:Tools命名空间原来是有大用处的
大致有三种主要功能:减少或者避免黄线提示,让代码更清爽,让编译少报错;让预览界面更灵活,可以随心所欲的定制预览视图;压缩资源文件,降低APK体积。
(比如:在 xml 中有中文,就会报 MissingTranslation 错误,我们加上 tools:ignore 之后即可避免。)

你不知道的TextUtils用法
比如TextUtils.isDigitsOnly(string) 可检查字符串中是否全是数字

Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?

TextView/string.xml冷门小技巧:占位转换符%1 s 、 s、%1 sd等的用法(附:富文本工具SpannableString也很强大哦)
比如:“我叫XXX,今年XX岁了,身高X.X米”。

xml:
<string name="instance">String.xml占位转换符:我叫%1$s,今年%2$d岁了,身高%3$f厘米。</string>

java:
TextView tv=(TextView)findViewById(R.id.tv);
String format = getResources().getString(R.string.instance);
String result= String.format(format ,"andy", 22,100);
tv.setText(result);

结果:
String.xml占位转换符:我叫andy,今年22岁了,身高100厘米。

快速切换到主线程更新UI的三种方法
Activity.runOnUiThread()
View.post(Runnable)
Handler.post(Runnable)&Handler.post(Runnable,long)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值