题目来源:
https://www.jianshu.com/p/c70989bd5f29

Android各个版本API的区别

谈谈对Volley的理解

描述一次网络请求的流程

ActivityThread,AMS,WMS的工作原理

AsyncTask+HttpClient 与 AsyncHttpClient有什么区别?

Android线程有没有上限?

参考:
http://blog.csdn.net/javalive09/article/details/50588525
15193

线程池有没有上限?

理论没有上限

RecyclerView和ListView的性能对比

ListView的优化

RecycleView优化

RecycleView原理

ListView重用的是什么?ListView 中图片错位的问题是如何产生的和解决方案?RecycleView和ListView的区别

请描述一下View事件传递分发机制

View刷新机制

View绘制流程

View渲染

自定义View的事件

自定义View注意事项

自定义控件原理

Android代码中实现WAP方式联网

混合开发有了解吗?知道哪些混合开发的方式?说出它们的优缺点和各自使用场景?(解答:比如:RN,weex,H5,小程序,WPA等。做Android的了解一些前端js等还是很有好处的);

服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达?

动态布局的理解

怎么去除重复代码?

画出 Android 的大体架构图

如果在onStop的时候做了网络请求,onResume的时候怎么恢复?

Android中开启摄像头的主要步骤

微信主页面的实现方式

Viewpager+fragment

微信上消息小红点的原理

CAS介绍

(一)图片
图片库对比
图片库的源码分析
图片框架缓存实现
LRUCache原理

LinkHashMap单向链表,最近使用的放在最后,不常使用的放在头部,超过限制就删除头部的缓存。

图片加载原理
自己去实现图片库,怎么做?
Glide源码解析
Glide使用什么缓存?
Glide内存缓存如何控制大小?

网络框架对比和源码分析

自己去设计网络请求框架,怎么做?

okhttp源码

网络请求缓存处理,okhttp如何处理网络缓存的

从网络加载一个10M的图片,说下注意事项

TCP的3次握手和四次挥手

TCP与UDP的区别,TCP与UDP的应用

HTTP协议
HTTP1.0与2.0的区别
HTTP报文结构
HTTP与HTTPS的区别以及如何实现安全性
如何验证证书的合法性?
https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
client如何确定自己发送的消息被server收到?
谈谈你对WebSocket的理解
WebSocket与socket的区别
谈谈你对安卓签名的理解。
请解释安卓为啥要加签名机制?
视频加密传输
App 是如何沙箱化,为什么要这么做?
权限管理系统(底层的权限是如何进行 grant 的)?

数据库

sqlite升级,增加字段,数据迁移

参考:
http://blog.csdn.net/leehong2005/article/details/9128501
https://www.cnblogs.com/xgjblog/p/5647803.html

1.重命名原来的表
2.建立新表
3.复制数据
4.删除旧表

数据库的优化

参考:
http://blog.csdn.net/u014608640/article/details/52511310
http://blog.csdn.net/horkychen/article/details/18892223
http://blog.csdn.net/whb20081815/article/details/70142033

1.索引
2.事务
3.在Where分支中使用限定符
4.语句的拼接使用StringBuilder代替String
5.查询时返回更少的结果集及更少的字段。
6.异步操作数据库

数据库框架对比和源码分析

参考:
http://blog.csdn.net/u010134293/article/details/58590092
http://blog.csdn.net/da_caoyuan/article/details/61414626
greenDao 插入删除快
realm 查询快

插件化、模块化、组件化、热修复、增量更新、Gradle

对热修复和插件化的理解
插件化原理分析
模块化实现(好处,原因)
热修复,插件化
项目组件化的理解
描述清点击 Android Studio 的 build 按钮后发生了什么

谈谈你对Android设计模式的理解

参考:
https://www.zhihu.com/question/29575295
http://blog.csdn.net/happy_horse/article/details/50908439

单例模式:各种系统级服务
建造者模式:AlertDialog.Builder,静态内部类
适配器模式:Adapter
工厂模式:BitmapFactory
观察者模式:ContentObserver

手写生产者/消费者模式

写出观察者模式的代码

适配器模式,装饰者模式,外观模式的异同?

MVC MVP MVVM原理和区别

参考:
http://blog.csdn.net/copy_yuan/article/details/51524667

MVC Activity即是Controller又是View,View与Model耦合很高
MVP Activity充当View处理UI,Presenter用来负责事件分发,将View和Model隔离
MVVM 解决了数据绑定的问题,但是View中逻辑过重。
个人使用MVP,View中去掉数据操作之后,代码量完全可以接受,再加上findViewById插件或者ButterKnife插件写起来很快。

用到的一些开源框架,介绍一个看过源码的,内部实现过程。

谈谈对RxJava的理解

RxJava的功能与原理实现

RxJava的作用,与平时使用的异步操作来比的优缺点

说说EventBus作用,实现方式,代替EventBus的方式

实现组件间通信
register会把当前类中匹配的方法,存入一个map,而post会根据实参去map查找进行反射调用
RxBus实现EventBus
https://www.jianshu.com/p/b99d60a4e749

从0设计一款App整体架构,如何去做?

说一款你认为当前比较火的应用并设计(比如:直播APP,P2P金融,小视频等)

Fragment如果在Adapter中使用应该如何解耦?

Binder机制及底层实现

参考:
http://blog.csdn.net/universus/article/details/6211589
http://blog.csdn.net/huaxun66/article/details/52966087
http://blog.csdn.net/u011240877/article/details/72825706

对于应用更新这块是如何做的?(解答:灰度,强制更新,分区域更新)?

实现一个Json解析器(可以通过正则提高速度)

谈谈对java状态机理解

(七)性能优化

如何对Android 应用进行性能分析以及优化?

ddms 和 traceView

DDMS 可用于 检测内存泄漏;
TraceView 可跟踪代码的执行时间,需要SD卡访问权限

Debug.startMethodTracing("love_world_");
Debug.stopMethodTracing();

Java多线程引发的性能问题,怎么解决?

统计启动时长,标准

冷启动:Application.onAttachBaseContext->FirstActivity.onWindowFocused
热启动:onRestart->onWindowFocused

启动页白屏及黑屏解决?启动太慢怎么解决?

设置windowBackground,延时创建Application中的对象,不必要的类可以稍后实例化, 一些第三方 SDK延迟初始化

如何保持应用的稳定性

代码稳定性,提前用捕捉一些可能出现的异常,自定义异常捕捉器

现在下载速度很慢,试从网络协议的角度分析原因,并优化(提示:网络的5层都可以涉及)。

Https请求慢的解决办法(提示:DNS,携带数据,直接访问IP)

java中的四种引用的区别以及使用场景

强引用置为null,会不会被回收?

(八)NDK、jni、Binder、AIDL、进程通信有关

请介绍一下NDK

什么是NDK库?

jni用过吗?

如何在jni中注册native函数,有几种注册方式?

Java如何调用c、c++语言?

jni如何调用java层代码?

进程间通信的方式?

Binder机制

简述IPC?

什么是AIDL?AIDL解决了什么问题?AIDL如何使用?

Android 上的 Inter-Process-Communication 跨进程通信时如何工作的?

多进程场景遇见过么?

进程调度

谈谈对进程共享和线程安全的认识

谈谈对多进程开发的理解以及多进程应用场景

什么是协程?

(九)framework层、ROM定制、Ubuntu、Linux之类的问题

java虚拟机的特性

谈谈对jvm的理解

JVM内存区域,开线程影响哪块内存

对Dalvik、ART虚拟机有什么了解?

Art和Dalvik对比

虚拟机原理,如何自己设计一个虚拟机(内存管理,类加载,双亲委派)

谈谈你对双亲委派模型理解

JVM内存模型,内存区域

类加载机制

谈谈对ClassLoader(类加载器)的理解

谈谈对动态加载(OSGI)的理解

内存对象的循环引用及避免

内存回收机制、GC回收策略、GC原理时机以及GC对象

垃圾回收机制与调用System.gc()区别

Ubuntu编译安卓系统

系统启动流程是什么?(提示:Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程)

大体说清一个应用程序安装到手机上时发生了什么

简述Activity启动全部过程

App启动流程,从点击桌面开始

逻辑地址与物理地址,为什么使用逻辑地址?

Android为每个应用程序分配的内存大小是多少?

Android中进程内存的分配,能不能自己分配定额内存?

进程保活的方式

如何保证一个后台服务不被杀死?(相同问题:如何保证service在后台不被kill?)比较省电的方式是什么?

App中唤醒其他进程的实现方式

android知识(三)相关推荐

  1. Gradle For Android(三)Gradle优化与灵活的使用技巧

    <Gradle For Android(三)Gradle优化与灵活的使用技巧 > 转载请注明来自傻小孩b(gold.xitu.io/user/57e089-喜欢的可以关注我,不定期总结文章 ...

  2. 0基础学android开发,我们究竟还要学习哪些Android知识

    前言 如果你也学习Android,那么你大概率会看过我的文章.经常有读者给我留言:"该怎么学习Android?"."日常学习Android的方法是什么". 所以 ...

  3. Android 知识汇总

    转载请注明:http://blog.csdn.net/feather_wch/article/details/52043153 本文用于归纳分类几年Android开发过程中的所有资料. 本文包含主要三 ...

  4. Android知识大纲

    Android知识大纲 Java垃圾回收机制 Java内存是如何划分的,Java语言为什么要使用垃圾回收机制? 垃圾判定 1. 标记引用算法 2. 根搜索法 虚拟机栈中的引用对象 方法区中的常量引用对 ...

  5. android知识总结 - 收藏集 - 掘金

    一个精简.全面.方便的 AndroidLog 库 --ALog - Android - 掘金 Functions 可设置Log开启和关闭 可设置Log全局Tag ... 关于 Okhttp3(六)-C ...

  6. Android知识补充(Android学习笔记)

    Android知识补充 ●国际化 所谓的国际化,就是指软件在开发时就应该具备支持多种语言和地区的功能,也就是说开发的软件能同时应对不同国家和地区的用户访问,并针对不同国家和地区的用户,提供相应的.符合 ...

  7. Android知识体系总结2020(全方面覆盖Android知识结构,面试进阶)

    Android知识体系总结(全方面覆盖Android知识结构,面试&进阶 Version-3.0.0 时间:2020.05) 此篇文章是初中高级工程师学习文章,知识体系较为完整.有如下特点: ...

  8. Gradle for Android 第三篇( 依赖管理 )

    Gradle for Android 第三篇( 依赖管理 ) 依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的j ...

  9. android camera(三):camera V4L2 FIMC

    关键词: android  camera CMM 模组 camera参数  CAMIF   V4L2   平台信息: 内核: linux 系统: android 平台:S5PV310(samsung ...

  10. (六)JS基础知识三(走进作用域和闭包)【三座大山之二,不会闭包,基本不会通过】

    JS基础知识三(作用域和闭包) 提问 作用域 自由变量 闭包 this 提问 this的不同应用场景,如何取值 手写bind函数 实际开发中闭包的应用场景,举例说明 创建10个a标签,点击的时候弹出对 ...

最新文章

  1. Can't connect to MySQL server on '127.0.0.1' (10061) (code 2003)解决方法
  2. go语言----函数 结构体 接口 多态
  3. JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter
  4. python实例(一)
  5. 安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客...
  6. 关于php 高并发解决的一点思路
  7. Nmap参数--指纹识别探测
  8. python基础之五大标准数据类型
  9. Solidity 中 revert(), assert() 和 require() 的使用方法
  10. centos6.5 install cobbler
  11. 2021 年 8 月全国程序员薪酬终于出炉了!北京以18904元位居榜首
  12. 算法笔记:使用A*算法解决八数码问题
  13. t检验和u检验的差别
  14. 各大招聘网站信息实时查询浏览
  15. Steve Jobs 2005年于 Stanford University 毕业典礼上的演讲
  16. OpenCV实战——角度测量
  17. SCOI2016酱油记
  18. 纯CSS实现文字通知无缝衔接无限循环滚动
  19. 【MyBatis】MyBatis 核心配置综述之 ParameterHandler
  20. Notes: 赖世雄-美语音标

热门文章

  1. idea插件 Foldable projectview使用方法
  2. DBoW2 回环检测/重定位 算法解析
  3. 《误差理论》——粗大误差
  4. VUE+ts项目配置--alias别名配置
  5. 计算机网络系统集成认证,计算机网络系统集成的实现策略
  6. win10下装win7双系统_打破专家的断言,突破微软和英特尔的封锁,惠普电脑玩转双系统...
  7. nexus5x 刷机root
  8. Acwing 5133奶牛排队
  9. Python练习册0-9
  10. 一台机器启动相同服务导致端口占用,日志报错The Tomcat connector configured to listen on port 8090 failed to start.