软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 移动开发 -> Android开发找工作之前先看看这些知识点吧 -> 正文阅读

[移动开发]Android开发找工作之前先看看这些知识点吧


1.Listview列表效率优化


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

2.应用内存优化


(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)线程也是造成内存泄露的一个重要原因,在于线程的生命周期不可控制,解决方法:
a.将线程内部类改为静态内部类
b.用弱引用来保存context引用
(8)使用.9图片

3.什么是ANR 如何避免它?


ANR:Application Not Responding,五秒在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android就会显示ANR对话框了:
对输入事件(如按键、触摸屏事件)的响应超过5秒
意向接受器(intentReceiver)超过10秒钟仍未执行完毕
Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intent broadcast)。
因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()和 onResume()等更应如此。潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算,比如改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 — 也不需要调用Therad.wait()或者Thread.sleep()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程 在即将结束的时候调用它。使用这种方法涉及你的应用程序,能够保证你的程序 对输入保持良好的响应,从而避免因为输入事件超过5秒钟不被处理而产生的ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时 问题。

4.什么情况会导致Force Close ?如何避免?能否捕获导致其的异常?


一般像空指针啊,可以看起logcat,然后对应到程序中 来解决错误

5.横竖屏切换时候activity的生命周期?


1)、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2)、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3)、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

6.Android引入广播机制的用意?


a:从MVC的角度考虑(应用程序内)
android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时候是一种相互依存的关系,有时候又是一 种补充关系,引入广播机制可以方便几大组件的信息和数据交互。
b:程序间互通消息(例如在自己的应用程序内监听系统来电)
c:效率上(参考UDP的广播协议在局域网的方便性)
d:设计模式上(反转控制的一种应用,类似监听者模式)

7. Android中如何防止apk被反编译

8. 多线程结合异步回调的使用。

9. Android物种数据存储方式及使用。

10. 解析XML文件的几种方式,及优缺点。


XML解析主要有三种方式,SAX、DOM、PULL。常规在PC上开发我们使用Dom相对轻松些,但一些性能敏感的数据库或手机上还是主要采用SAX方 式,SAX读取是单向的,优点:不占内存空间、解析属性方便,但缺点就是对于套嵌多个分支来说处理不是很方便。而DOM方式会把整个XML文件加载到内存 中去,这里Android开发网提醒大家该方法在查找方面可以和XPath很好的结合如果数据量不是很大推荐使用,而PULL常常用在J2ME对于节点处 理比较好,类似SAX方式,同样很节省内存,在J2ME中我们经常使用的KXML库来解析。Android的xml文件解析就是通过pull解析的。

11. Android消息处理机制(Handler、Looper)的使用。

12. 如果Activity被回收怎么办?


Activity在销毁时会调用onSaveInstanceState(Bundle bundle)方法,这时可以对数据进行存储,在Activity再次onCreate(Bundle bundle)的时候去获取bundle对象读取数据。

13. MVC的使用。

14. 问项目中会用到什么设计模式,举例等。

15. Android四大组件,是做什么用的

16.如何监听程序crash信息

Activity implement UncaughtExceptHandler 接口

17.anr日志写在哪里的

可以通过命令行获取trace.txt文件

18.tomcat做什么用

把电脑配置成服务器

19.dp、sp什么区别

20.handler机制原理是什么

21.子线程能操作UI吗


子线程不能直接操作UI,但是可以通过以下方法进行操作:
Activity.runOnUiThread()
View.post()
Handler
AsyncTask

22.mvc的理解,在开发时怎么展现

23.用过的第三方框架的原理

24.http请求结果,返回数值的理解

200:请求成功
401:未认证
403:禁止访问
404:找不到指定资源
500:服务器内部错误
504:网关超时

25.activity生命周期

onCreate:初始化数据
onStart:页面可见、不可交互
onResume:页面可见、可交互
onPause:页面可见、不可交互,保存数据
onStop:页面不可见
onDestory:销毁页面
onRestart

26.怎么退出一个应用


System.exit(0);

27.怎么在android 应用里打开浏览器,对应intent要指定什么类型

Intent intent=new Intent("android.intent.action.View");
intent.setData(Uri.prase("www.baidu.com"));
intent.setClassName();//指定浏览器

28.自定义的接口是什么样的

29.post和get的区别


get:用于请求数据,参数附在url后面,http本身对请求长度没有限制,但某些浏览器和服务器对长度有限制
post:用于发生数据,参数放在请求体中,更安全

30.http和https的区别

31.怎么回收String对象

32.怎么进行垃圾回收

33.线程间的通信

34.HashMap和HashTable的区别


HashMap是JDK1.2之后推出的,允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

35.Map的子类


HashMap:无序,不能重复,键可以为null
HashTable:无序,不能重复,键不可以为null
TreeMap:有序,不能重复
WeakHashMap:弱引用
IdentityHashMap:无序,可以重复

36.List的子类

37.hashCode和equals区别

equals比较结果相同,hashcode一定相同;hashcode相同,equals比较结果不一定相同

38.如何重写equals方法


Person p1=new Person(“tom”,21);
Person p2=new Person(“tom”,21);
请问p1.equals(p2)的结果是什么?
答案是false,因为object.equals()默认比较的是引用地址,若想要 p1.equals(p2)的结果为true,需要重写equals方法。

39.OOM的处理


oom是内存溢出,一般发生在图片处理时,所以可对图片进行压缩
1.BitmapFactory.option 边界压缩
2.Bitmap.compress() 改变图片存储
3.使用软引用,内存不足时可以释放资源,避免内存溢出

40.java引用类型有那些?分别有什么特点


类、接口、数组
一、从概念方面来说
基本数据类型:变量名指向具体的数值
引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值
二、从内存构建方面来说
基本数据类型:变量在声明之后java就会立刻分配给他内存空间
引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。
三、从使用方面来说
基本数据类型:使用时需要赋具体值,判断时使用“==”号
引用数据类型:使用时可以赋null,判断时使用equals方法

41.java的异常处理机制有什么优点


第一,当发生错误时,程序不至于崩溃。
第二,当发生错误时,可以在短时间内找到错误所在行,能节省时间。

42.jvm产生内存泄漏的原因是什么

43.如何优化布局?include、merge、viewStub有什么使用场景


标签能够重用布局文件。
标签在UI的结构优化中起着非常重要的作用,它可以删减多余的层级,优化UI。
标签最大的优点是当你需要时才会加载,使用他并不会影响UI初始化时的性能。

44.String和StringBuffer有什么区别


StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。

45.try-catch-finally代码块的执行顺序是什么样的


try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }
catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 。catch可以有多个,也可以没有}
finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally 。finally可以没有,也可以只有一个;如果没有catch语句块,那么finally块就是必须的}

46.数组有没有length()这个方法? String有没有length()这个方法?


数组没有length()这个方法,有length的属性。String有有length()这个方法。

47.char能不能存储一个中文汉字?为什么?


能。Java中的一个char是2个字节,java采用unicode,2个字节来表示一个字符。一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。

48.fragment有什么优缺点?怎么理解activity和fragment的关系?

49.Thread和service的区别


......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-04 00:13:10  
移动开发 最新文章
深入了解android中的消息机制Handler
Android
Libgdx之BitmapFont字体
AndroidApp发布到应用市场的流程
Android开发找工作之前先看看这些知识点吧
View的事件分发机制解析
简单介绍了解白鹭引擎Egret
Cocos2d
android获取本地图片(二)
动画特效七:碰撞动画
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2017年11日历
2017-11-19 0:00:43
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --