android面试题

时间:2022-11-24 01:35:21 面试技巧 我要投稿

android面试题2017

  2017年,android工程师在面试中会遇到哪些面试问题呢?你做好面试准备了吗?以下是阳光网小编帮你们整理的2017android面试题,一起来学习啦。

android面试题2017

  2017android面试题篇一

  1. 请描述下Activity的声明周期。

  onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy

  2. 如果后台的Activity由于某种原因被系统回收,如何在回收之前保存当前状态。

  onSaveInstanceState().

  程序中的某一个Activity A 在运行时,主动或被动的运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。B完成以后又回来找A,这个时候有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被回收的`就直接执行onResume(),跳过onCreate()。

  3. 如何将一个Activity设置成窗口样式。

  在AndroidManifext.xml中Activity定义处添加

  android:theme="@android:style/Theme.Dialog" 或

  android:theme="@android:style/Theme.Translucent"。

  4. 如何退出Activity?如何安全退出已调用多个Activity的Application?

  01.Activity.finish();

  也可以用killProcess()和System.exit()这样的方法

  2.用ActivityManager的restartPackage方法

  5. 请介绍下android大众常用的五种布局。

  FrameLayout(框架布局)

  只可以有一个控件,并且不能设计这个控件的位置,控件会放在左上角

  LinearLayout(线性布局)

  一行只能控制一个控件的线性布局,所以当有很多控件需要在一个界面中列出时,可以用LinearLayout布局

  AbsoluteLayout(绝对布局)

  可以放置多个控件,并且可以自己定义控件的x,y的位置

  RelativeLayout(相对布局)

  比如要在一行上显示多个控件,这时就要用到相对布局

  TableLayout(表格布局)

  将子元素的位置分配到行或列中,一个TableLayout由许多的TableRow组成

  6. 请介绍下android的数据存储方式。

  SharedPreferences方式

  用来存储”key-value paires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型,可以通过它保存一些上次用户所做的修改操作

  文件存储方式

  它通过FileInputStream和FileOutputStream对文件进行操作。但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件,如果要共享数据就用Content Providers

  SQLite数据库方式

  Android提供的一个标准的数据库,支持SQL语句

  内容提供器(Content provider)方式

  是所有应用程序之间数据存储和检索的桥梁,它的作用是使得各个应用程序之间实现数据共享

  网络存储方式

  通过网络来存储和获取数据

  2017android面试题篇二

  1、IntentService有何优点?

  答:IntentService 的好处

  * Acitivity的进程,当处理Intent的时候,会产生一个对应的Service

  * Android的进程处理器现在会尽可能的不kill掉你

  * 非常容易使用

  2、横竖屏切换时候activity的生命周期?

  01、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

  02、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

  03、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

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

  解答:可以将dictionary.db文件复制到Eclipse Android工程中的res aw目录中。所有在res aw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。可以将dictionary.db文件复制到res aw目录中

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

  解答:在Android中不能直接打开res aw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的'基本方法是使用getResources().openRawResource方法获得res aw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。

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

  答:a:从MVC的角度考虑(应用程序内)

  其实回答这个问题的时候还可以这样问,android为什么要有那4大组件,现在的移动开发模型基本上也是照搬的web那一套MVC架构,只不过是改了点嫁妆而已。android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以方便几大组件的信息和数据交互。

  b:程序间互通消息(例如在自己的应用程序内监听系统来电)

  c:效率上(参考UDP的广播协议在局域网的方便性)

  d:设计模式上(反转控制的一种应用,类似监听者模式)

  2017android面试题篇三

  1、请介绍下ContentProvider是如何实现数据共享的。

  Android提供了ContentProvider,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且ContentProviders是以类似数据库中表的方式将数据暴露,也就是说ContentProvider就像一个“数据库”。那么外界获取其提供的数据,也就应该与从数据库中获取数据的操作基本一样,只不过是采用URI来表示外界需要访问的“数据库”。外部访问通过ContentResolver去访问并操作这些被暴露的数据。

  2、如何启用Service,如何停用Service。

  Intent intent = new Intent();

  intent.setClass(this,cba.class);

  startService(intent);

  stopService(intent);

  3、 请解释下Android程序运行时权限与文件系统权限的区别。

  Android程序运行是虚拟机Dalvik( android授权)

  文件系统是linux 内核授权

  4、系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

  Intent intent =newIntent();

  intent.setAction("android.intent.action.VIEW");

  Uri content_url =Uri.parse(");

  intent.setData(content_url);

  intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");

  startActivity(intent);

  5、有一个一维整型数组int[] data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。

  答:像素数组int[]data里就是一个个像素的颜色值,你循环和0xffffffff比较,如果相等,那么就把这个值换成0x88ffffff就行了,这样像素数组里所有的白色不透明(0xffffffff)都变成的`半透明

  6、你如何评价Android系统?优缺点。

  优点:开源特性,得到众多厂商支持。

  软件发展很快。

  界面UI,系统优化不错。

  缺点:版本过多,升级过快。

  用户体验不一致。

  7、 android中的动画有哪几类,他们的特点和区别是什么?

  两种,

  一种是Tween动画(补间动画),

  一种是Frame动画(逐帧动画)。

  Tween动画:使试图组件移动,放大,缩小以及产生透明度的变化。

  Frame动画:传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

【android面试题】相关文章:

android测试面试题11-25

android面试题及答案04-04

android面试题整理04-04

android面试题大全04-04

android面试题练习04-04

总结的android面试题12-09

android软件测试面试题04-04

android面试题库04-04

android常见面试题04-04