1.简单的设计模式:
单例模式:在系统中一个类只有一个实例。 分为懒汉模式和饿汉模式。饿汉模式的代码如下:
public class Singleten{
private static singleten Instance = new Singleten();
private Singleten(){}
public static getInstance()
{
return Instance ;
}
}
观察者模式:一个对象改变状态,则依赖它的所有对象都会得到通知并改变状态。
迭代器模式:iterator();遍历元素的方法有hasNext(),first(),next(),remove()
模版方法

2.Listview列表效率优化
(1)利用convertview回收视图
(2)采用ViewHolder模式
(3) 异步加载图片
(4) 快速滑动时不加载图片
(5) 如果自定义的item中有图片,需要处理图片(减少图片所占内存)
1.对图片进行边界压缩 2.用option类来保存图片大小 3.避免图片的实时缩放,最好预先缩放到视图大小
(6)尽量避免在listview适配器中使用线程,因为线程是产生内存泄露的主要原因在于线程的生命周期不可控。

3.应用内存优化
(1)bitmap设置图片大小(优化内存溢出)
BitmapFactory.Option option = new BitmapFactory.Option();
option.inSampleSize = 2; //将视图宽、高都变为原来的1/2
(2)bitmap对象销毁,可以借助recycle()方法让GC回收bitmap对象。
(3)尽量避免static成员变量引用资源消耗过多的实例,如:context
(4)使用Application的context
(5)及时关闭资源,如在查询数据库时需要及时关闭cursor
(6)对经常使用的图片使用软引用保存
(7)线程也是造成内存泄露的一个重要原因,在于线程的生命周期不可控制,解决方法:
1.将线程内部类改为静态内部类
2.用弱引用来保存context引用
(8)使用.9图片

4.Handler与Handler Thread关系
android消息处理机制:handler、Looper、MessageQueue、Message
将一个线程变为looper线程的方法: Looper.prepare; //初始化MessageQueue与Looper
Looper.loop();//消息循环

5.异常处理
IoException异常是编译器异常,在编译时就会报错
ANR异常解决方法:尽量在主线程只做少量工作,比较耗时的工作单独在一个子线程中完成(或使用异步请求)

6.数据库的优化
1.使用索引
2.使用事务
3.查询时返回更少的结果集和字段

7.数据存储的方法
sharedpreference存储、文件存储、SQLite存储、contentprovide存储、网络存储数据

8.启动服务的两种方法:startservice 和bindservice
使用startservice()启动服务,调用者和服务之间没有关联,即使调用者退出了,服务仍然运行;使用bindservice()启动服务,调用者和服务绑定在一起,调用者一旦退出,服务也终止;采用startservice启动服务,只能调用stopservice终止服务。

startservice()启动服务的生命周期:oncreat()、onstart(),ondestroy() ;第一次startservice()启动服务会调用oncreat()、onstart();后面再使用startservice()启动服务,只会调用onstart()

bindservice()启动服务的生命周期:oncreat()、onbind()、omunbind()、ondestroy();第一次 bindservice()启动服务调用oncreat()、onbind(),多次调用 bindservice()并不会多次创建服务及绑定,如果调用者希望与正在绑定的服务解除绑定,可以调用unbindservice()方法。

8.set、List的区别:Set中元素不重复

9.contentprovide如何实现数据共享
如果想使应用程序的数据公开化:1.自己创建一个contentprovide 2.将数据添加到一个已经存在的contentprovide上
如何获取数据: 外界程序可以通过contextResolver接口访问contentprovide提供的数据
contentprovide的优点为:为其他程序提供了一个对数据访问的接口,从而实现对数据进行访问和更新的操作

1.在某个activity界面按Home键走的生命周期:onpause(),onstop(),onsaveinstanceState()
在某个activity界面按Home键再点击应用图标走的生命周期:onRestart().onStart(),onResume()

11.在android中的4种Activity启动模式:SingleTask、standard、SingleTop、SingleInstance

12.Http协议 HttpClient类 Jeson包解析

13.socket协议
android客户端实现:
try{
socket = new Socket(̶192.168.1.32″,1989);
InputStream inputStream = new FileInputStream (̶e://a.txt”);
OutputStream outputStream = socket.getoutputStream() ;
byte buffer[] = new byte[4*124];
int temp = ;
while((temp = inputStream .read(buffer))!=-1){
outputStream.write(buffer,,temp);
}
outputStream.flush();
}
服务器端:
try{
serverSocket = new serverSocket (989);
Socket socket = serverSocket.accept();

InputStream inputStream = new FileInputStream (̶e://a.txt”);
InputStream inputStream = socket.getinputStream() ;
byte buffer[] = new byte[4*124];
int temp = ;
while((temp = inputStream .read(buffer))!=-1){
system.out.println(new String(buffer,,temp));
}
serverSocket.close();
}

14.AIDL android内部进程通信接口的描述语言

15.强引用:内存不足时,不会回收强引用的对象
软引用:内存不足时,会回收软引用的对象
弱引用:垃圾回收每次都会回收弱引用的对象

16.android view的刷新机制

17.静态内部类
(1)非静态内部类中bunengdingy静态成员变量和方法
(2)外部类和非静态内部类之间可以互相访问自己的私有成员
(3)静态内部类只能访问外部类的静态成员

2016总结Android面试题的更多相关文章

  1. [干货]2017已来,最全面试总结——这些Android面试题你一定需要

        地址.http://blog.csdn.net/xhmj12/article/details/54730883 相关阅读: 吊炸天!74款APP完整源码! [干货精品,值得收藏]超全的一线互联 ...

  2. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  3. 安卓Android面试题大全

    56个问题都是经常用到的,可以深入研究下,也是必须掌握的开发必备知识. 安卓Android面试题汇总 搜集了一些Android面试题目,供将要面试或者正在面试的朋友参考. 1, 谈谈你对Activit ...

  4. Android 面试题总结

    Android 面试题总结(不断更新) 1.INETNT几种有关Activit的启动方式FLAG_ACTIVITY_BROUGHT_TO_FRONT 将ACTIVITY带到最前面FLAG_ACTIVI ...

  5. Android面试题整理【转载】

      面试宝典(5)  http://www.apkbus.com/android-115989-1-1.html 面试的几个回答技巧 http://blog.sina.com.cn/s/blog_ad ...

  6. 19、android面试题整理(自己给自己充充电吧)

    (转载,出处丢失,请原作者原谅,如有意见,私信我我会尽快删除本文) JAVA 1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问 ...

  7. Android面试题基础(转)

    71道经典Android面试题和答案 1.下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释 ...

  8. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  9. Android面试题(文章内容来自他人博客)

    腾讯面试题 1.int a = 1; int result = a+++3<<2; 2.int a = 2; int result = (a++ > 2)?(++a):(a+=3); ...

随机推荐

  1. 在Linux(Luna)下向Launch启动器中添加图标

    记录下在Luna下向Launch中添加图标的步骤,以供以后参考,这里我以加入eclipse图标为例: 首先,我们来创建一个desktop文件(Luna中到启动器Launch可以看作是Ubuntu中到桌 ...

  2. ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

    前言 性能是我们日常生活中经常接触到的一个词语,更好的性能意味着能给我们带来更好的用户体检.比如我们在购买手机.显卡.CPU等的时候,可能会更加的关注于这样指标,所以本篇就来做一个性能评测. 性能也一 ...

  3. 跨平台的 .NET 运行环境 Mono 3.2 新特性

    Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新. Mono 3.2 主要新特性: LLVM 更新到 3.2 版本,带来更多 ...

  4. TODO:字节的那点事Go篇

    TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...

  5. xamarin MasterDetailPage点击Master时卡顿现象

    在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...

  6. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  7. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

  8. redis成长之路——(六)

    redis配置 为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景! 当然配置多了码农也会受不了, ...

  9. 慕课网H5圣诞主题

    继七夕之后,我又出了一个圣诞主题的课程.圣诞主题是基于HTML5+CSS+JS编写与实现的,同时也是七夕主题的故事延续.圣诞主题依旧延续着七夕主题设计的思路,引入了3个经典的场景页面,在每个场景中表述 ...

  10. JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)

    1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...