Android基础面试问题

本文详细介绍了Android操作系统的基本概念,包括其定义、版本、开发流程、关键组件如Activity和Intent的工作原理,以及各种存储方式和开发工具等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

翻译自:http://www.androidinterview.com/android-basic-interview-qa/


1.什么是Android?

Android是一个基于Linux的专为可触控设备例如手机或者平板定制的操作系统。

2.Android 版本?

3.Android开发程序的步骤?

4.什么是Activity?

一个Activity代表了一个用户界面,Android从调用Activity的onCreate()开始来实例化自己的程序,你需要遵循一系列的生命周期。

5.Activity 生命周期?

Activity生命周期

6.什么是Intent?

Intent是一种用来在Android组件(Activity,Service,Broadcast Receiver 和 Content Provider)中,用来传递信息的东东,其实有点类似于直接调用API,但是和API有区别:
(1)API调用
同步的,intent是异步的 (2)API是编译期间绑定,intent是运行时绑定

7.Intent有几种类型?

(1)直接Intent (2)间接Intent

8.什么是Explicit Intent?

Intent intent = new Intent(MyActivity.this, MySecondAcitivity.class);

9.什么是Broadcast Intent?

Broadcast Intent被用来通知系统或者应用程序某些事情发生了,Android上电池电量改变,网络状况,来电,系统启动等都会发送广播Intent

10.Android中的一些异常(我也不懂要问什么):
(1)InflateException:(2)当一个surface没有创建的时候抛出Surface.OutofResourceException (3)Surface.Holder.BadSurfaceTypeException (4)WindowManager.BadTokenException

11.什么是Intent Filter?

一句话,Intent Filter通过指定和一个Intent相关的action,categories,data scheme来过滤Intent。

12.什么是Pending Intent?
Pending Intent是一种机制,什么机制呢?就是用来创建一个可以被其它应用程序在稍后一段时间能够启动的Intent。Pending Intent经常被用来包裹一个可能在将来有事件发生的Intent,比如一个可能会被点击的桌面小组件,或者通知栏的Notification
13.什么是.apk文件?
.apk就是Android Package File的缩写,包含了所有和一个Android应用程序相关的资源
14.什么是.dex文件?
Android代码被编译成了.dex(Dalvik Executable)文件,然后被打包进.apk文件中了
15.Android架构

16.所有Andriod手机都叫做“Droids”?
不一定,“Droid”只是一个商标品牌的名字,Droid X,Droid Eris,Droid Incredible等等,HTC Evo 4G不是“Droid”,但是它也是智能手机啊…(看不懂)

17.什么是Sticky Intent?
sendStickyBroadcast() ,当广播发送完毕的时候,这个Intent依然存在。一个例子就是电量的变化,ACTION_BATTARY_CHANGED,当你registerReceiver()注册这个action的时候,你得到的是上一次发送广播的时候留下的Intent

18.Android浏览器是否支持Adobe Flash?
Android2.1之后基本上都支持了
19.Android支持几种类型对话框?
AlertDialog:ProgressDialog,DatePickerDialog,TimePickerDialog
20.Android支持哪些数据存储?
1. SharedPrefernces
2. local cache
3. Internal storage
4. External storage
5. SQLite storage
6. Content Provider
7. Network connection

21.Android开发工具
Android SDK和Virtual Device Manager----->AVD和SDK packages
Android Emulator----->Android 虚拟机
Dalvik Debug Monitoring Service(DDMS)----->监视
Android Asset Packaging Took(AAPT)----->.apk文件
Android Debug Bridge(ADB)----->运行虚拟机,复制,安装app,执行shall命令等

22.什么是View?

23.什么是Dalvik Virtual Machine?

和Java Virtual Machine类似,执行.dex文件

24.什么是Fragment?
Fragment就像子Activity似的,依附于Activity
25.Android间接Intent:

Intent intent = new Intent (Intent.ACTION_DIAL, Uri.parse("tel:-667-996));
26.Andriod Layout?
FrameLayout,LinearLayout,RelativeLayout,TableLayout,Gallery View…
27.Android程序只能用java写?
当然不是了,也支持C和C++
28.Android App都有哪些表现形式?
前后App,后台App,Intermittent,组件
29.什么是Toast?
……这也用解释?
30.什么是Notification Manager?
通知栏嘛…

### Android 基础面试问题及其答案 #### Java 部分 #### 创建线程的方式及区别 在Java中创建线程有两种主要的方法:继承`Thread`类和实现`Runnable`接口。这两种方式的主要区别在于前者会占用一个额外的父类位置,而后者则不会影响到类的单一继承结构[^4]。 ```java // 继承 Thread 类 class MyThread extends Thread { public void run() { System.out.println("Thread by extending Thread class"); } } // 实现 Runnable 接口 class MyRunnable implements Runnable { @Override public void run() { System.out.println("Thread by implementing Runnable interface"); } } ``` #### Android 部分 #### Activity 的生命周期方法 Activity 是 Android 应用程序中的基本构建模块之一,它拥有多个状态转换回调函数组成的复杂生命期管理机制。具体来说,存在如下七个重要的生命周期方法: - `onCreate()` 当 activity 被首次启动时调用。 - `onStart()` 表明该组件即将变得可见给用户。 - `onResume()` 用户可以交互之前一定会被触发。 - `onPause()` 另一活动获得焦点前执行此操作保存数据或停止动画等资源消耗型工作。 - `onStop()` 完全不可见状态下会被调用。 - `onDestroy()` 正式销毁实例化对象释放内存空间之前的最后一个机会。 - `onRestart()` 如果当前处于 stopped 状态下重新进入前台显示,则先经过这个阶段再回到 started 或 resumed 状态[^3]。 #### 播放音频功能实现 对于想要在其应用程序内加入声音回放特性的开发者而言,通常会选择使用 MediaPlayer API 来完成这项任务。MediaPlayer 提供了一套完整的控制命令集用于处理各种多媒体文件格式以及流媒体服务链接地址解析等功能[^2]。 ```java import android.media.MediaPlayer; public class AudioPlayer { private MediaPlayer mediaPlayer; public void playAudio(String path){ try{ if (mediaPlayer != null && mediaPlayer.isPlaying()){ stopAudio(); } mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(path); mediaPlayer.prepare(); // prepare async to not block main thread. mediaPlayer.start(); } catch(Exception e){ Log.e("Error", "Cannot play audio file."); } } public void pauseAudio(){ if(mediaPlayer!=null&&mediaPlayer.isPlaying()) mediaPlayer.pause(); } public void resumeAudio(){ if(mediaPlayer!=null&&!mediaPlayer.isPlaying()) mediaPlayer.start(); } public void stopAudio(){ if(mediaPlayer!=null){ mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer=null; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值