文章目录

  • 前言
  • 一、Android之四大组件、六大布局、五大存储
  • 二、安卓线程原理
  • 三、安卓开源框架
  • 三、安卓架构MVC、MVP、MVVM
  • 四、设计模式
  • 面试题整理
    • 1.Activity A 跳转到 Activity B,生命周期的执行过程
    • 2.Android广播接收器(BroadcastReceiver)的启动优先级问题
    • 3.五大存储(见上文 **Android之四大组件、六大布局、五大存**储)
    • 4.Android自定义view的种类
    • 5.Activity 的四种启动模式
    • 6.单例模式下如果想要三个实例怎么写
    • 7.Java四种引用
    • 8.Android 事件分发机制
    • 9.插件化
  • 总结

前言

今天闲暇之余来整理一下工作中经常使用知识,比较枯燥和基础,特此记录,我称其为安卓八股文,当然安卓的东西非常的多,这里只记录比较常见的,话虽如此,也很多很多了。

下文会比较枯燥,因为是整理所以很多都是链接


一、Android之四大组件、六大布局、五大存储

Android之四大组件、六大布局、五大存储

四大组件

二、安卓线程原理

1、基础使用

继承Thread类
实现Runnable接口
Handler
2、复合使用

AsyncTask
HandlerThread
IntentService
3、高级使用

线程池(ThreadPool)
Android实现多线程的几种方式

Handler的基本使用+细节解说Handler源码

三、安卓开源框架

一些主流的:
网络框架
OKHttp详解
android retrofit 从无知到入门(retrofit是基于OKHttp封装)

sqllite数据库框架
greendao
room(jecpack)

数据绑定
Android ButterKnife(黄油刀)的使用

响应式编程框架
rxjava

小众的(博主自己工作涉及到的,还是比较火的,这边就不分类了)

andserver(网络框架)
zxing(扫码)

第三方接入经验,这个的话就多了,支付宝微信讯飞极光之类的巴拉巴拉,很多,要有自己的经历才能说得出来了

三、安卓架构MVC、MVP、MVVM

MVC、MVP、MVVM之间的区别和联系

四、设计模式

虽然是在java语言角度上写的,但是写的真的非常好
Java常见设计模式总结

面试题整理

不是什么大厂,就是博主自己去面试问到的一些问题,比较基础,但我第一次遇到的时候真的有没反应过来的问题,整理过的知识点的面试题就没有单独拿出来了

1.Activity A 跳转到 Activity B,生命周期的执行过程

Activity A 跳转到 Activity B,生命周期的执行过程
妈妈不担心系列之Activity的生命周期
这个文章题目比较。。。但是内容比较全

2.Android广播接收器(BroadcastReceiver)的启动优先级问题

Android广播接收器(BroadcastReceiver)的启动优先级问题

3.五大存储(见上文 Android之四大组件、六大布局、五大存储)

4.Android自定义view的种类

1.自绘控件,继承view,重写onDraw方法,在其中进行绘制,需要自己适配边距等等
2.继承ViewGroup派生的特殊Layout,主要用于实现自定义布局,也需要自己适配边距等
3.继承特定的View(如TextView等),不用自己适配支持wrap_conten,match_parent,可以给其加入新的功能
4.继承特定的ViewGroup,例如linearlayout,多用于多个控件的组合view,也不用自己去做适配
5.(个人补充,依据自己的经验说)activity设置弹窗模式

5.Activity 的四种启动模式

standard
  每次启动都会重新创建一个实例,不管这个 Activity 在栈中是否已经存在。谁启动了这个 Activity,那么 Activity 就运行在启动它的那个 Activity 所在的栈中。用 Application 去启动 Activity 时会报错,原因是非 Activity 的 Context 没有任务栈。解决办法是为待启动 Activity 制定 FLAG_ACTIVITY_NEW_TASH 标志位,这样就会为它创建一个新的任务栈。
singleTop
 如果新 Activity 位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时回调 onNewIntent 方法。onCreate 和 onStart 方法不会被执行。
singleTask
  这是一种单实例模式。如果不存在 activity 所需要的任务栈,则创建一个新任务栈和新 Activity 实例;如果存在所需要的任务栈,不存在实例,则新创建一个 Activity 实例;如果存在所需要的任务栈和实例,则不创建,调用 onNewIntent 方法。同时使该 Activity 实例之上的所有 Activity 出栈。
参考:taskAffinity 属性用于标识 Activity 所需要的任务栈,相同标识的 Actvity 会在同一个栈中。
singleIntance
  单实例模式。具有 singleTask 模式的所有特性,同时具有此模式的 Activity 只能独自位于一个任务栈中。所以每次都会新建一个栈。
可以通过命令行 adb shell dumpsys activity 命令查看栈中的 Activity 信息。

6.单例模式下如果想要三个实例怎么写

在判空的地方根据不同的次数返回不同的实例(这个是个人理解,如有错误请在评论区加以指正)

后面问了技术群的群友才明白面试官想问的是什么,大佬说估计他是想问 线程间想实现不同的单例怎么做 因为平时说的单例是进程间的,然后面试官菜一点 没问到点子上。

然后还有说问的是设计模式中的享元模式,因为不常用,一是没有想起来(懊恼)

7.Java四种引用

这个问题是我自己说用到了弱引用解决activity内存泄漏问题衍生出来的。
Java四种引用

8.Android 事件分发机制

这个问题应该也比较基础吧,但是平常开发当中也就只是用一下onTouchEvent()这个方法,没有深究过,还是应该掌握的
Android 事件分发机制

9.插件化

这个问题是面试的人可能问的比较深了,我没怎么答得上来因为我开发的项目只有组件化没有插件化,但是如果要往这个方面发展的话,还是需要掌握的,初中级的话稍微了解说得出来应该就没问题了
【Android 插件化】插件化简介 ( 组件化与插件化 )


总结

站在巨人的肩膀上,吃透找工作轻轻松松啦,后面再有面试再补充
2022.7.20收到了一家满意的offer,本篇文章在下次换工作的时候再更新,当然可能就不是初中级了,哈哈,

安卓初中级开发基础知识整理(面试自用)相关推荐

  1. web前端开发基础知识整理以及前端视频教程

    随着移动互联网的发展和越来越多创业公司的加入,Web前端工程师的岗位空缺越来越大,薪资迅速上涨.Web前端工程师比以往更具有号召力. 想要自学成为炙手可热的Web前端工程师?靠零碎化的短视频可不行,你 ...

  2. 前端开发基础知识整理--web综合篇

    该篇是web综合部分,主要包含了HTML(HTML5).http.页面优化及其他一些概念性的问题 doctype是什么?标准模式与兼容模式各有什么区别? <!doctype>声明必须处于H ...

  3. C++基础知识整理(面试热点)

    C++复习 C++数据类型:自定义类型 和 基本类型 ISO C++标准并没有明确规定每种数据类型的字节数和取值范围,它只是规定它们之间的字节数大小顺序满足char<short<<i ...

  4. Android移动应用开发基础知识整理

    Android移动应用开发 9.13笔记 自带模拟器运行程序出现adb问题:需要配置环境变量. adb简介:安卓调试桥,模拟器与开发环境的连接,也需要配置环境变量. 1)运行程序时显示和功能逻辑分离( ...

  5. SQL基础知识整理(自用)

    1.日期差 DATEDIFF(a.recordDate,b.recordDate) a-b 或 TIMESTAMPDIFF TIMESTAMPDIFF能干什么,可以计算相差天数.小时.分钟和秒,相比于 ...

  6. 【安卓开发系列 -- APP】APP 开发基础技术整理

    [安卓开发系列 -- APP]APP 开发基础技术整理 [1]Android Studio APP 项目目录布局  [2]活动的生命周期 活动的状态 : 1. 运行状态,一个活动位于返回栈栈顶时,活动 ...

  7. 安卓开发-基础知识补习3

    听说点赞关注的人,身体健康,万事如意,工作顺利,爱情甜蜜,一夜暴富,升职加薪--最终迎娶白富美!!! 微信公众号:炜煜gzs 题目:安卓开发-基础知识补习3 内容简介:本文通过学习安卓零基础开发到入门 ...

  8. Web前端基础知识整理

    1. 前端基础知识 文件分类 XML(扩展标记语言) 装载有格式的数据信息,用于各个框架和技术的配置文件描述 特点: 扩展名为.xml 内容区分大小写 标签要成对出现,形成容器,只能有一个 标签按正确 ...

  9. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

最新文章

  1. 【转】statfs获得硬盘使用情况 模拟linux命令 df
  2. python 客户端 如何获取手机_Python学习---Django的request扩展[获取用户设备信息]
  3. 第二十七讲 微分方程组解的图像
  4. 如何使用exclipse打开已有的文件夹
  5. 英语计算机房和操场怎么读,计算机房对我们学习帮助很大. the , in studies , computer , room , helps , lot , a , our , us...
  6. 获取机器安装.NET版本的几种方式
  7. Python刷题-1
  8. 计算机三级标题,计算机三级考试题目
  9. python mockito arg_that_编程高阶用法–开发者高频词汇
  10. Atitit usrqbg1834 html的逻辑化流程化 规范标准化解决方案
  11. 中国农业大学计算机研究生专业课,中国农业大学2019计算机考研纯干货分享
  12. 遗传算法(GA)求解车辆路径问题(VRP)——matlab实现
  13. 【C++设计模式】建造者模式
  14. IDEA中的SourceRoot含义及设置方法
  15. 攻防世界 reverse新手题 logmein
  16. 人生25句最美丽的名句
  17. Scrach基本概念与操作
  18. 【Requests】获取本地的请求IP和域名解析的IP
  19. pytorch实现 chatbot聊天机器人
  20. win10系统网络连接只显示飞行模式

热门文章

  1. 中国汽车无线通信模块行业市场供需与战略研究报告
  2. 超平面、半空间、多面体的辨析
  3. matlab怎么数值模拟。,matlab的数值模拟方法.doc
  4. 我现在也晕菜了(二)
  5. 微软365网盘国内服务器,5TB微软Office365网盘OneDrive详细申请方法教程
  6. 饥饿营销:如果世界末日来临,你愿意为我抢一件优衣库kwas联名款吗?
  7. 汇编语言shl/shr与sal/sar的使用
  8. 知道创宇 二级安全公司 骗取面试人源码,长见识了啊。
  9. dakai微信小程序 ios_苹果6s微信小程序进不去 苹果小程序怎么弄出来
  10. 递归 递归 递归 —深入浅出