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
    评论
Java全栈知识体系是指掌握Java语言及其应用于不同技术领域的相关知识。Java是一种广泛应用于后台开发、大数据处理、移动开发以及前端开发的编程语言,因此Java全栈开发人员需要掌握一系列技术和工具。 首先,Java全栈开发人员需要具备扎实的Java语言基础,包括面向对象编程、多线程编程、异常处理等知识。此外,掌握Java的核心类库也是必要的,比如集合框架、IO流、网络编程等。 其次,Java全栈开发人员需要熟悉Web开发技术,包括JavaWeb开发、JavaEE技术、Servlet、JSP、Spring MVC等。这些技术用于实现Web应用的后台逻辑和与前端页面的交互。 另外,Java全栈开发人员需要了解数据库相关知识,包括数据库的设计和管理,SQL语言,以及Java与数据库的交互技术,比如JDBC、ORM框架如Hibernate和MyBatis等。 此外,Java全栈开发人员还需要掌握前端开发技术,如HTML、CSS、JavaScript、Ajax等,以便实现Web应用的前端页面和与后端的交互。 对于移动开发,Java全栈开发人员需要了解Android开发技术,包括Android框架、Android Studio开发环境、Android组件等。 最后,Java全栈开发人员还可以扩展其他领域的知识,如大数据技术(Hadoop、Spark)、云计算等,以应对当前技术的变化和市场需求。 总之,Java全栈知识体系是一个综合性的技术体系,要求开发人员在Java语言基础上熟悉Web开发、数据库、前端开发以及可能的其他领域的知识,以能够独立完成从后端到前端的整个应用开发过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值