Android基础知识(一)

1、内存溢出和内存泄露有什么区别

内存溢出:应用的内存已经已经达到系统设置的最大值,进而导致崩溃

内存泄露:应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,通常都是由于内存泄露导致内存溢出。

2、wait()和sleep()的区别

①这两个方法来自不同的类分别是Object和Thread

②sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

③wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

④sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法

3、ListView的优化方案

①重用 convertView

②用 ViewHolder 避免在 getView 中有 重复调用的 findViewById

③设置 View (如 TextView#setText )之前先对比数据是否有改变(重绘代价大)

④避免在 getView 函数中直接加载 Image 或做其他比较耗时的操作

⑤ListView 中元素避免半透明(半透明绘制需要大量乘法计算)

⑥尽量开启硬件加速

⑦ 用威力加强版 RecyclerView代替ListView

4、注册广播有几种方式,这些方式有何优缺点

①在应用程序的代码中注册

当BroadcastReceiver更新UI,通常会使用这样的方法注册。启动Activity时候注册BroadcastReceiver,Activity不可见时候,取消注册。

②在AndroidManifest.xml当中注册,是常驻型广播,程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。缺点是广播始终处于活动状态,对cpu和电量耗费相对较高。

5、线程的几种状态,分别是哪些

java中,线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态。

①创建:生成线程对象,并没有调用该对象的start方法线程就会被创建

②就绪:调用start创建后线程就会处于就绪状态,或者线程从等待或者睡眠中回来之后,也会处于就绪状态

③运行:线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码

④阻塞:线程正在运行的时候被暂停,sleep,suspend,wait等方法都可以导致线程阻塞。

⑤死亡:线程的run方法执行结束或者调用stop方法后该线程就会死亡

6、什么是ANR如何避免它?

Application Not Responding也就是在规定的时间内,没有响应。

原因:

①在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)

②BroadcastReceiver在10秒内没有执行完毕。

避免方法:

①在Activity的onCreate()和onResume()减少耗时操作

②将耗时任务放到非UI线程执行然后用handler来更新UI线程

③避免在onReceiver里面做过多操作

④避免在Intent Receiver里启动一个Activity,因为它会创建一个新的画面,并从当前用户正在运行的程序上抢夺焦点。

7、如果后台的Activity由于某种原因被系统回收了,如何在被系统后手之前保存当前状态

①Activity中提供了一个方法:onSavedInstanceState(Bundle bundle),当系统销毁一个Activity时,会将Activity的状态信息已键值对形式存放在bundle对象中

②当系统重新回到被回收的Activity时会调用这个Activity的onCreate方法,并把bundle对象传递过去

8、线程间通讯的两种方式是什么及原理?

Android线程间通信主要指UI线程与子线程间的通信。Android线程间通信的方式主要有两种,一种是通过MessageQueue机制实现通信;一种是使用异步任务AsyncTask。

①Message Queue是一个消息队列,用来存放通过Handler发布的消息。Android在第一启动程序时会默认会为UI thread创建一个关联的消息队列,可以在自己的子线程中创建Handler与UI thread通讯

② AsyncTask:首先继承一下此类,实现以下若干方法

onPreExecute(),doInBackground(Params…),onProgressUpdate(Progress…),onPostExecute(Result)

9、final,finally,finalize的区别

①final—修饰符(关键字)。如果一个类被声明为final,将不能作为父类被继承。将变量或方法声明为final,可以保证它们在使用中不被改变。将方法被声明为final后不能重载。

②finally—在异常处理时提供 finally 块来执行任何清除操作。

③finalize—方法名。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

10、Android中asset文件夹和raw文件夹的区别

①资源映射:res/raw中的文件会被映射到R.Java文件中,assets中的文件不会被映射。

②目录结构:res/raw不可以有目录结构,而assets则可以有目录结构(可以再建其他文件夹)

③目录用途:res/raw一般存放一些音视频文件,assets一般存放html,js,css和数据文件

④访问方式:

res/raw访问使用R.id.filename

InputStream in = context.getResources().openRawResource(R.id.filename);

assets访问方式

InputStream in = context.getResources().getAssets().open(fileName);

11、Android内存的优化策略

①使用更加轻量的数据结构

②避免在Android里面使用Enum

③减小Bitmap对象的内存占用

④Bitmap对象的复用

⑤使用更小的图片

⑥使用StringBuilder来代替频繁的字符串拼接

⑦避免在onDraw方法里面执行对象的创建

⑧避免对象的内存泄露

12.继承的优缺点 :

优点:

1.代码重用,减少创建类的成本,每个字类都拥有父类的方法和属性;、

2.子类与父类基本相似,但又与父类有所区别

3.提高代码的可扩展性

缺点:

1.继承是可侵入性的,只要继承就必须拥有父类所有属性和方法

2.可能在造成子类代码的冗余、降低灵活性,因为子类必须拥有父类方法和属性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335