1.MVP:
从MVC到MVP的一个转变,就是减少了Activity的职责,减轻了它的负担,简化了Activity中的代码和一些操作,将逻辑代码提取到了Presenter中进行处理,降低了其耦合度。
1.降低耦合度,隐藏数据,Activity中代码更简洁
2.模块职责划分明显3.方便测试驱动开发
4.代码复用度较高
5.代码灵活性
2.Android 四种启动方式
standard:启动就新建一个 Activity,默认都是这个
snigleTop:实例在栈顶,则重用该实例,调 onNewIntent() 方法。应用场景,支付界面,比如支付宝和微信的支付界面都是singleTop,适合做接收通知的界面。
singleTask:栈中有则重用。适合做程序的入口点,比如浏览器的入口,不管启动启动多少次,主页面就那一个。聊天界面,聊天列表界面,图册。
singleInstance:新的任务栈里只有他,应用场景,闹铃,弹框
3.Android中为什么主线程不会因为Looper.loop()里的死循环卡死?
1,epoll模型当没有消息的时候会epoll.wait,等待句柄写的时候再唤醒。
2,所有的ui操作都通过handler来发消息操作。比如ui绘制,所以他能被唤醒。
4.gc 怎么运行的,循环引用怎么处理 ,有几种引用方式
5. Java 基本类型
boolean
boolean 1 位 - - Boolean
char 16 位 Unicode 0 Unicode 2 的16 次方-1 Character
byte 8 位 -128 +127 Byte(注释①)
short 16 位 -2 的15 次方 +2 的15 次方-1 Short(注释①)
int 32 位 -2 的31 次方 +2 的31 次方-1 Integer
long 64 位 -2 的63 次方 +2 的63 次方-1 Long
float 32 位 IEEE754 IEEE754 Float
double 64 位 IEEE754 IEEE754 Double
6.shot 和 char 最基本的区别,short 是 sign 的,char 是 unsign 的
7.心跳包的策略
8.发生死锁的处理方法
9.cookie 有什么用处
10.写一个单例模式
public class Singleton {
private static Singleton singleton = null;
private Singleton() { }
public static Singleton getInstance() {
if (singleton== null) {
singleton= new Singleton();
}
return singleton;
}
}
11.java垃圾回收之循环引用
12.service 如何保活
13.多线程如何同步
14.aidl服务端挂掉怎么办,怎么通知客户端
15.设置线程优先级方法
16.websocket丢包率
17.二分法查找
18.单例模式
19.volley原理,缓存怎么处理的
20.UIL 实现原理
21.lock
22.怎么优化SQLite
建立索引,优点:数据量大可以很快找到数据,缺点:增加数据库体积。更适用于数据库特别大的场景;
编译 SQL 语句成 SQLiteStatement,因为每次都编译 SQL 语句也需要时间。
显示使用事务
查询数据优化 (微小的工作)
按需获取列信息,
提前获得索引,
ContentValues 的容量调整(因为ContentValues 会双倍扩容,提前设置合适的容量就可避免不必要的扩容操作),
及时关闭 Cursor,
耗时异步化,单线程 加 任务队列
22.怎么优化布局XML
23.使用 ViewStub,Merge
24.自定义view,需要实现哪些方法
onMeasure,onLayout,onDraw
25.Android新特性
26.asynctask版本的区别,新版本是怎么处理的
27.多线程下载怎么实现
28.List 接口的实现有哪些:
ArrayList 数组实现轻量级,运行快,线程不安全。JDK1.2 查询快
Vector 数组实现重量级,运行慢,线程安全。JDK1.0
LinkedList链表实现 常用语堆栈与队列的实现 增删操作快
Map 接口的实现有哪些
HashMap 轻量级 线程不安全的,允许key或value为null JDK1.2
HashTable 重量级 线程安全的 不允许key或value为null JDK1.0(Properties是HashTable的子类,主键和值都是字符串)
SortedMap:(不重要)特点: key唯一,有序(Unicode升序) 实现类:TreeMap
String可否继承
String 是 final 的,不可继承
29.looper 机制
http://wangkuiwu.github.io/2014/08/26/MessageQueue/
http://blog.csdn.net/luoshengyang/article/details/6817933
http://www.cnblogs.com/codingmyworld/archive/2011/09/12/2174255.html
30.如何处理多线程的情况,多线程如何同步
31.算法题 int 数组里找相同数字
32.时间复杂度
33.动画
34.静态内部类和非静态内部类的区别,Adapter 中的 ViewHolder 应该用 静态类还是非静态内部类
35.Asynctask 的实现,Handler 的实现
36.多线程同步
37.View 事件传递机制
37.多线程同步
38.遇到的难题有什么,怎么解决的
39.登录用的 token 还是 session,多久过期
40.动画
41.新特性
42.视频播放
43.图片缓存怎么处理,为什么是 缓存大小是 应用可用内存的 1/8
44.EventBus
45.Volley
46.mvp 模式
47.如何自定义 view
48.View 传递机制
49.动画
50.视频播放
51.多线程
52.遇到过什么难题,如何解决的
53.UIL 的实现
54.多线程同步
55.说一下 java 里的动态绑定
56.多态,多态是怎么实现的
57.多线程
58.Link Hash HaspMap和HaspTable ,他们之间的区别,什么是 线程安全,线程不安全,性能有什么区别
59.Android的布局
sp px dp
60.Android 主线程的问题
61.Android中用户数据的存储问题。如果放到sd卡中,用户把sd卡拿走或sd卡损坏怎么处理。
62.系统升级怎么保证客户数据不丢失
63.LinearLayout和RelativeLayout的区别和好处
64.堆和栈的区别
65.Java有哪些容器,都是在什么情况下使用
66.Android的网络情况怎么获取
67.Java的垃圾回收机制
68.多态的代码
69.onNewIntent
70.GradViewLayout
71.异常处理
72.api 6.0特性
73.recycle
74.android_support_v4除了Fragment还有什么