Android基础面试题

一、为了正确的使用AsyncTask类,以下是几条必须遵守的准则:

(1)Task的实例必须在UI thread中创建;

(2)Execute方法必须在UI thread 中调用;

(3)不要手动的调用onPreExecute(),onPostExecute(Result).doInBackGround(Params...),onProgressUpdate(Progress...)这几个方法;

(4)该Task只能被执行一次,否则多次调用时将会出现异常;

(5)DoInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第三个为doInBackground返回和onPostExecute传入的参数。

二、属于PULL解析XML中字段的是

(1)START_TAGB;

(2)START_DOCUMENTC;

(3)TEXT

三、gen目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.javaR.java在应用中起到了字典的作用。它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编译器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编译进软件中,这样可以减少应用在手机占用的空间。

四、Res/资源(Resource)目录

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。

五、AndroidManifest.xml功能清单文件

这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity

Default.properties项目环境信息,一般是不需要修改此文件。

六、在Android中,有4activity启动模式,分别为:“standard(默认)、“singleTop”、“singleTask”、“singleInstance

它们主要有如下不同:

1、如何决定所属task

standard”和“singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。

singleTask”、“singleInstance”总是把activity作为一个task的根元素,他们不会被启动到一个其他task里。

2、是否允许多个实例“standard”和“singleTop”可以被实例化多次,并且存在于不同的task中,且一个task可以包括一个activity的多个实例;“singleTask”、“singleInstance”则限制只生成一个实例,并且是task的根目录。singleTop要求如果创建intent的时候栈顶已经有要创建的activity的实例,则将intent发送给实例,而不发送给新的实例。

3.是否允许其他activity存在于本task内“singleInstance”独占一个task,其他activity不能存在那个task里;如果它启动了一个新的activity,不管新的activitylaunch mode 如何,新的activity都将会到别的task里运行(如同加了FLAG_ACTIVITY_NEW_TASK参数)。而另外三种模式,则可以和其它activity共存。

4.是否每次都生成新实例

standard”对于没一个启动Intent都会生成一个activity的新实例;“singleTop”的activity如果在task的栈顶,则不生成新的该activity的实例,直接使用栈顶的实例,否则,生成该activity的实例。

如:现在task栈元素为A-B-C-D(D在栈顶),这时候给D发一个启动intent,如果D是“standard,则生成D的一个新实例,栈变为A-B-C-D

如:DsingleTop,则不会生成D的新实例,栈状态仍为A-B-C-D

如:这时候给BIntent,不管Blaunchmode 是“standard”还是“singleTop”,都会生成B的新实例,栈状态变为A-B-C-D-B

singleInstance”是其所有栈的唯一activity,它会每次都被重用。

singleTask”如果在栈顶,则接受intent,不在栈顶则该intent会被丢弃,但是该task仍会回到前台。

 当已经存在的activity实例处理新的intent时候,会调用onNewIntent()方法,如果收到intent生成一个activity实例,那么用户可以通过back键回到上一个状态;如果是已经存在的一个activity来处理这个intent的话,用户不能通过back键返回到这之前的状态。

七、当前屏幕横屏宽度:430dp

第一个子控件未分配权重前所占宽度:300dp

第二个子控件未分配权重前所占宽度:300dp

当前屏幕剩余空间总数:

430dp-300dp-300dp=-170dp

将当前-170dp按权重分配给两个子控件,

子控件一分配到3/5

子控件二分配到2/5

第一个子控件分配权重后宽度:

430dp+-170*3/5 = 198dp

第二个子控件分配权重后宽度:

430dp+-170*2/5 = 232dp

八、广播的注册:在清单文件中声明,添加


<receiver android:name="IncomingSMSReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIED"/>
    </intent-filter>
</receiver>

广播分为静态和动态

类要继承BroadcastReceiver

静态:广播跟随程序的生命周期;

动态:当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动执行。

九、调用finish(),Activity调用顺序是onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()

十、抽象类可以有抽象方法和实现方法,避免了在子类中重复实现这些方法,在一定程度上提升代码的重用性。

接口只能有抽象方法,不能有实现方法。

十一、IPC是内部进程通信的简称,是共享“命名管道”的资源。Android中的IPC机制是为了让ActivityService之间可以随时进行交互,故在Android中该机制,只适用于ActivityService之间的通信,类似于远程方法调用,类似于C/S模式的访问。通过定义AIDL接口文件来定义IPC接口。Service端实现IPC接口,Client端调用IPC接口本地代理。

十二、1、在流行度方面,XML已经被业界广泛使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成AjaxAsynchronous Javascript and JSON)了。

2、JSONXML同样拥有丰富的解析手段。

3、JSON相对于XML来讲,数据体积小。

4、JSONJavaScript的交互更加方便。

 

Pxdpdipdpisp

AVD

Android的数据存储

安全退出Activity

抽象,类、接口的区别

关键字

数字签名

Service的生命周期

Android的层次

JSON解析

MVC模式

静态变量和实例变量

基本数据类型

Android命令创建模拟器

共享参数

异步任务

SQLite

关键字的区别

Service

Dialog

控件

输入输出

动画

进程

Activity生命周期

JSONXML

代理模式

GC内存泄漏

Activity生命周期

Android的数据存储

单位转换

Sim卡的EF文件

打开res raw 目录中的数据文件

Activity旋转的生命周期

I/O

Tools工具

Activity的生命状态

相对布局

JSON解析类

Xml中控件

Android线性布局中的权重

输出语句

嵌入式操作系统

Intentservice

SAX解析

Manifest.xml

SAX解析xml

ContentProvider

AIDL支持的数据类型

listView的优化

DOM解析

Java垃圾回收

JSONXML

Adapter

Activity生命周期

SQLite

列表的显示

RatingBar

new对象

ArraylistVectorLinkedList的存储功能

进程

Android系统

Res/anim/res/xml/res/raw/

安全退出Activity

AIDL

handler处理机制

Int long所占字节数

构造方法

Android目录

Manifest.xml

assets目录

Android的四大组件

运算符

AsyncTask的使用

Activity生命周期

XML解析

Handler

Intent作用

Intent启动方式

基本数据类型

Xml解析

序列化

Android NDK

SharePreferences(共享参数)

共享存储数据读取

Dialog(对话框)

布局方式

JSONXML

Android系统的优势

单线程模型

Activity的生命状态

抽象与接口

Toast时长

Activity生命周期

数据类型

ContentValues

垃圾回收

Platform-tools工具

Service的生命周期

HashMap

进程

ActivityIntentcontent ProviderService

Activity的启动模式

new对象

模式

OverloadOverride

Intent传值

Activity生命周期

SOAP

URL的组成

Sleepwait

Android

IPC(进程间通信)机制

内存回收

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值