android知识(三)

题目来源:
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)