Android面试题记录二

Android

1.Android的动画有哪几种?他们的特点和区别是什么?

a.两种 Tween动画,Frame动画
b.Tween动画:可以使视图组件移动,放大,缩小以及产生透明度的变化
Frame动画:传统动画方法,通过顺序的播放排列好的图片来实现 例如:电影

2.说说mvc模式的原理,它在Android中的运用:

3.让Activity变成一个窗口?

设置Activity属性,在AndroidManifest.xml中引用

4.Android的五种数据存储方式:

SharedPreferences存储数据 :Android提供用来储存一些简单的配置信息的一种机制,例如:登录账号,密码。它采用了Map数据结构来存储数据,以键值对的方式存储。在DDMS中的File Explorer中的/data/data//shares_prefs下。使用SharedPreferences缺点:只能在同一个包内使用。

文件存储数据 :在Android中读取/写入文件的方法,和java中实现I/O的方法是一样的,提供了openFilePut() 和openFileOutput() 方法来读取设备上的文件 栗子:


String s = "log";
FileInputStream fi = openFileInput(s);
FileOutputStream fo = openFileOutput(s,Context.MODE_PRIVATE);

SQLite数据库存储数据 : SQLite是轻量级嵌入式数据库引擎,且只利用很少的内存就有很好的性能,直接通过SQLiteDatabase对象来创建一个数据库。或者继承SQLiteOpenHelper类封装创建和更新数据库使用的逻辑

网络存储数据: 需要与Android网络数据包交互

ContentProvider存储数据

5.Android中常用的五种布局:

FrameLayout(框架布局) LinearLayout(线性布局) RelativeLayout(相对布局)
AbsoluteLayout(绝对布局) TableLayout(表格布局)

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

a. 程序出现异常,例如 nullpointer
b. 避免:编写更加健壮的代码
c. logcat中可查看异常信息

7.横竖屏切换时候的Activity的生命周期?

a.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,默认首先会销毁当前Activity,然后重新加载。切横屏时会执行一次,切竖屏时会执行二次。

b.设置Actiity的android:configChanges=”orientaion”时,切屏还是会重新调用各个生命周期,切横竖屏幕只会执行一次。

c.设置Activity的android:configChanges=”orientation|KeyboardHidden|scrennSize”时,
切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。

8.如何将SQLite数据库(.db文件)与apk文件一起发布?

将XXX.db 文件复制到工程中res aw目录中,该目标中的文件不会被压缩

9.如何将打开res aw目录中的数据库文件?

使用openDatabase方法来打开数据库文件,如果该文件不存在系统会自动在SD卡中创建/sdcard/dictionary目录,并将res/raw目录中的xxx.db复制到自动创建的目录中

10.Android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别?

a.XML解析主要有三种方式,SAX,DOM,PULL
b. PC使用Dom相对轻松,但敏感的数据库或者手机上主要采用SAX方式,SAX读取是单向的,优点:不占用内存空间,解析属性方便。缺点:对于嵌套多个分支来说处理不方便。DOM:把整个XML文件加载到内存中去,Android开发可以和XPath结合使用(数据量不大)推荐使用。PULL:J2ME对节点处理比较好,类似SAX方式
在J2ME通常使用KXML库来解析

11.DDMS 和 TraceView的区别?

a. DDMS是一个程序执行查看器,可以看见线程和堆栈等信息
b. TraceView是程序性能分析器

12.Application类的作用?

初始化资源,数据共享

13.谈谈Android的IPC机制?

IPC是内部进程通信的简称,Android中的IPC机制是为了让Activity和Service之间可以随时进行交互,所以IPC在android中只适用于Activity和Service之间的通信,通过定义AIDL接口文件来定义IPC接口。Service端实现IPC接口,Client端调用IPC接口本地代理。

14.NDK是什么?

a. NDK帮助开发者迅速开发C/C++的动态库,并能自动将so和java 应用打成apk包。
b. NDK集成了交叉编译器,并提供了相应的mk文件和隔离cpu,平台的差异,开发者只需要修改mk文件就可以创建出so文件

15.Android的Service生命周期?那个方法可以多次被调用?

a. startService() : startService() -> onCreate() -> onStart(多次调用)
-> stopService() -> onDestory() ->stop
如果Service还没运行,会先调用onCreate() 然后调用 onStart();如果Service已经运行,直接调用onStart(), 所以一个Service的onStart()方法可能会重复调用多次。
stopService的时候直接onDestory(),如果调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。

b. bindService() : bindService() -> onCreate() -> onBind() -> onUnbind() -> onDestory() -> stop
content会和service生命周期绑定在一起

16.Android的broadcast生命周期?

17.Android view,surfaceView,glsurfaceview的区别?
18.Android 更新apk的原理?

19.在工作中你使用过哪些设计模式?

20.手机安装了多种浏览器,能否指定某个浏览器访问指定页面?

通过直接发送Url把参数带过去,或者通过Android 配置清单里的intentfilter 中的data属性进行设置

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值