自己整理最全Android笔试大全
- 格式:docx
- 大小:53.22 KB
- 文档页数:14
android考试试题Android考试试题随着智能手机的普及和Android系统的流行,越来越多的人开始学习和使用Android开发。
为了评估学习者对Android知识的掌握程度,各种形式的考试试题应运而生。
本文将介绍一些常见的Android考试试题,帮助读者更好地准备和应对Android考试。
一、基础知识类试题1. 请简要解释什么是Android系统?Android系统是一种基于Linux内核的开源操作系统,主要用于移动设备,如智能手机和平板电脑。
它提供了丰富的应用程序框架和开发工具,使开发者能够创建各种各样的应用程序。
2. 请列举Android系统的主要特点。
Android系统的主要特点包括开放性、兼容性、多任务处理、丰富的应用程序框架、强大的通信功能等。
3. 请简要解释什么是Android应用程序的四大组件?Android应用程序的四大组件分别为Activity、Service、BroadcastReceiver和ContentProvider。
Activity用于展示用户界面,Service用于后台运行任务,BroadcastReceiver用于接收和处理广播消息,ContentProvider用于数据共享和访问。
二、编程能力类试题1. 请编写一个简单的Android应用程序,实现一个计算器功能。
```javapublic class CalculatorActivity extends AppCompatActivity {private TextView resultTextView;private Button addButton;private Button subtractButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_calculator);resultTextView = findViewById(R.id.result_text_view);addButton = findViewById(R.id.add_button);subtractButton = findViewById(R.id.subtract_button);addButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int result = Integer.parseInt(resultTextView.getText().toString()); result += 1;resultTextView.setText(String.valueOf(result));}});subtractButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int result = Integer.parseInt(resultTextView.getText().toString()); result -= 1;resultTextView.setText(String.valueOf(result));}});}}```2. 请编写一个简单的Android应用程序,实现一个图片浏览器功能。
android开发笔试题及答案一、选择题1. 下列哪个不是Android开发中常用的布局控件?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. Button答案:D2. 在Android中,下列哪个方法用于启动一个新的Activity?A. startActivity()B. startService()C. bindService()D. sendBroadcast()答案:A3. 下列哪个不是Android中的四大组件?A. ActivityB. ServiceC. Content ProviderD. View答案:D4. 在Android开发中,下列哪个不是UI线程?A. 主线程B. UI线程C. 子线程D. 工作线程答案:C5. 在Android中,下列哪个不是用于处理网络请求的类?A. HttpURLConnectionB. HttpClientC. AsyncTaskD. HttpUrlConnection答案:C二、填空题1. 在Android中,______是用来定义一个应用程序的可执行组件。
答案:Activity2. AndroidManifest.xml文件是Android应用的______。
答案:配置文件3. 在Android开发中,______是用来实现数据持久化的一种方式。
答案:SQLite4. 在Android中,______是用来处理后台任务的。
答案:Service5. Android中,______是用来进行网络通信的。
答案:HTTPURLConnection三、简答题1. 请简述Android中Activity和Fragment的关系。
答案:Activity是Android应用程序中的基本构建块,它是一个可以包含用户界面的屏幕。
Fragment是Activity的一部分,可以被添加到Activity中,用来管理用户界面的一部分。
android笔试题Android是一种基于Linux的开放源代码操作系统,主要用于移动设备、平板电脑和智能电视等。
近年来,Android在全球范围内得到了广泛的应用和普及。
而为了能够熟练掌握Android开发技术,需要进行系统的学习和实践,并且需要通过一些笔试题来测试和巩固自己的知识。
下面是一些常见的Android笔试题,帮助你进一步了解该领域的知识。
一、基础知识1. 什么是Android操作系统?Android操作系统是基于Linux的开放源代码操作系统,主要用于移动设备和智能电视等。
它提供了丰富的应用程序框架和开发工具,能够实现丰富多样的移动应用程序。
2. 什么是APK文件?APK文件是Android应用程序的安装包文件,其中包含了该应用程序的所有代码、资源文件和配置信息等。
通过将APK文件安装到Android设备上,用户可以使用和体验该应用程序。
3. 什么是Activity?它的生命周期是怎样的?Activity是Android应用程序的组成部分,它代表着一个用户界面和交互的窗口。
Activity的生命周期包括以下几个关键方法:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()。
通过这些方法,开发者可以控制Activity的初始化、可见性以及内存管理等操作。
4. 什么是Intent?它有哪些作用?Intent是Android应用程序之间进行通信和交互的一种机制。
它可以用于启动Activity、传递数据、启动Service、启动BroadcastReceiver等。
通过使用Intent,开发者可以灵活地实现不同组件之间的相互调用和传递数据。
二、布局和界面1. Android常用的布局有哪些?请简要介绍一下。
Android常用的布局有线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)和网格布局(GridLayout)等。
安卓笔试题目为了评估您在安卓开发领域的能力,我们设计了以下的安卓笔试题目,请您仔细阅读并完成相关任务。
题目一:UI设计与布局请根据以下要求进行UI设计与布局:1. 设计一个音乐播放器界面,包含以下元素:- 标题栏(Title Bar):显示音乐播放器的标题;- 音乐封面(Music Cover):展示当前播放的音乐的专辑封面图;- 音乐信息(Music Info):显示当前播放的音乐的歌曲名、艺术家名和专辑名;- 播放控制(Playback Controls):包括播放/暂停按钮、前一首和后一首按钮;- 进度条(Progress Bar):显示当前音乐的播放进度,并可以通过拖动来调整播放位置;- 音量控制(Volume Control):可以调节音乐的音量大小。
2. 布局要求:- 整体布局应为垂直方向,依次为:标题栏、音乐封面、音乐信息、播放控制、进度条和音量控制;- 标题栏和播放控制应该固定在界面的顶部和底部;- 音乐封面应该居中显示,宽高比例为1:1;- 音乐信息、进度条和音量控制水平居中显示。
题目二:数据存储与管理请完成以下任务:1. 创建一个名为"Song"的数据模型,包含以下字段:- 歌曲名(title):字符串类型;- 艺术家名(artist):字符串类型;- 专辑名(album):字符串类型;- 时长(duration):整数类型,表示歌曲的时长(单位为秒);- 文件路径(filePath):字符串类型,表示歌曲文件在存储设备上的路径。
2. 创建一个名为"SongManager"的类,实现以下功能:- 添加歌曲:接受Song对象作为参数,将其添加到歌曲列表中;- 删除歌曲:接受歌曲名作为参数,从歌曲列表中删除对应的歌曲;- 搜索歌曲:接受关键词作为参数,返回包含该关键词的歌曲列表;- 计算总时长:返回歌曲列表中所有歌曲的总时长。
3. 在MainActivity中实例化SongManager对象,并完成以下操作:- 创建多个Song对象,并通过SongManager的添加歌曲方法将其添加到歌曲列表中;- 调用SongManager的删除歌曲方法,删除指定歌曲名的歌曲;- 调用SongManager的搜索歌曲方法,搜索包含指定关键词的歌曲列表;- 调用SongManager的计算总时长方法,获取歌曲列表的总时长并显示在界面上。
android考试复习题Android考试复习题Android是目前最流行的移动操作系统之一,它的广泛应用使得对Android开发的需求越来越大。
如果你正在准备Android考试,那么掌握一些常见的复习题是非常重要的。
本文将为你提供一些Android考试复习题,帮助你巩固知识并提高你的准备水平。
一、基础知识1. Android是哪个公司开发的?2. 什么是Android SDK?3. Android应用的基本组成部分是什么?4. 什么是Activity?5. 什么是Intent?6. 什么是布局文件?二、界面设计1. 请列举几种常见的布局文件类型。
2. LinearLayout和RelativeLayout有什么区别?3. 什么是ListView?4. 什么是RecyclerView?5. 什么是Fragment?三、数据存储1. 请列举几种常见的数据存储方式。
2. 什么是Shared Preferences?3. 什么是SQLite数据库?4. 什么是Content Provider?四、网络通信1. 请列举几种常见的网络通信方式。
2. 什么是HTTP请求?3. 什么是JSON?4. 请简要说明如何在Android应用中进行网络请求。
五、多媒体处理1. 什么是MediaPlayer?2. 什么是Camera API?3. 什么是SurfaceView?4. 请简要说明如何在Android应用中播放音频文件。
六、性能优化1. 什么是ANR?2. 请列举几种常见的性能优化方法。
3. 什么是内存泄漏?4. 请简要说明如何进行内存优化。
七、安全性1. 什么是ProGuard?2. 什么是混淆?3. 什么是HTTPS?4. 请简要说明如何保护Android应用的安全性。
八、其他1. 什么是Gradle?2. 什么是Android Studio?3. 请简要说明如何创建一个新的Android项目。
4. 请简要说明如何在Android应用中添加第三方库。
安卓考试试题一、选择题(每题2分,共20分)1. Android是基于什么操作系统开发的?A. WindowsB. LinuxC. MacOSD. Unix2. Android应用开发主要使用哪种编程语言?A. JavaB. C++C. PythonD. Swift3. 下列哪项不是Android四大组件之一?A. ActivityB. ServiceC. Content ProviderD. Module4. Android应用的UI设计通常使用哪种布局文件?A. .javaB. .htmlC. .xmlD. .css5. 在Android开发中,用于处理异步任务的类是?A. AsyncTaskB. ThreadC. HandlerD. Service6. AndroidManifest.xml文件的主要作用是什么?A. 定义应用的布局B. 定义应用的权限C. 定义应用的配色方案D. 定义应用的数据库结构7. 下列哪个不是Android中的视图组件?A. TextViewB. ImageViewC. ButtonD. DatabaseView8. 在Android中,使用哪种方式可以实现应用间的通信?A. IntentB. SocketC. BroadcastD. All of the above9. Android应用的发布格式是什么?A. .javaB. .apkC. .htmlD. .exe10. 下列哪项是Android应用开发中常用的设计模式?A. SingletonB. FactoryC. ObserverD. All of the above二、填空题(每题2分,共20分)11. Android系统的默认包名为_________。
12. Android应用的生命周期是由_________管理的。
13. 在Android中,使用_________可以实现网络请求。
14. Activity的onCreate()方法通常用于_________。
android 笔试题及答案一、选择题1. 下列哪个不是Android应用的组成部分?A. 清单文件(AndroidManifest.xml)B. Java源代码文件C. 图片和资源文件D. 执行文件答案:D2. Android系统的内核基于以下哪个操作系统?A. WindowsB. LinuxC. macOSD. iOS答案:B3. 在Android开发中,以下哪个不是常用的布局文件?A. LinearLayoutB. RelativeLayoutC. FrameLayoutD. TableView答案:D4. 在Android中,以下哪个不是四大组件?A. ActivityB. ServiceC. IntentD. ContentProvider答案:C5. 在Android中,以下哪个不是常用的存储方式?A. SharedPreferencesB. SQLite数据库C. 文件存储D. 内存缓存答案:D二、填空题1. Activity的生命周期包括以下几个方法:onCreate、onStart、______、onStop、onDestroy。
填空答案:onResume2. ______是Android系统提供的轻量级跨进程通信方式。
填空答案:AIDL(Android Interface Definition Language)3. 在Android中,使用______可以发送一个广播给其他应用或系统组件。
填空答案:Intent4. 在Android开发中,______是一种将组件从布局文件中实例化的机制。
填空答案:LayoutInflater5. 使用______可以将一个应用发布到Google Play商店。
填空答案:Android Studio、Android Developer Console三、问答题1. 什么是Fragment?它的作用是什么?答案:Fragment是Android中一种可重复使用的界面组件,它可以嵌入到Activity中,并且可以独立地管理自己的生命周期。
android笔试题及答案【篇一:android面试题带答案】>1.math.round(11.5)等于多少(). math.round(-11.5)等于多少(c)a、?? 11 ,-11b、11 ,-12c、12 ,-11d、12 ,-122下列程序段的输出结果是:(b )void complicatedexpression_r(){int x=20, y=30;boolean b;b=x50y60||x50y-60||x-50y60||x-50y-60;system.out.println(b);}a、trueb、falsec、1d、011.activity3.android 中下列属于intent的作用的是(c)a、实现应用程序间的数据共享b、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失c、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带d、处理一个应用程序整体性的工作失4 在android中使用menu时可能需要重写的方法有(ac)。
(多选)a、oncreateoptionsmenu()b、oncreatemenu()c、onoptionsitemselected()d、 onitemselected()5在android中使用sqliteopenhelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(ab)a、getwriteabledatabase()b、getreadabledatabase()c、getdatabase()d、 getabledatabase()6 .android 关于service生命周期的oncreate()和onstart()说法正确的是(ad)(多选题)a、当第一次启动的时候先后调用oncreate()和onstart()方法b、当第一次启动的时候只会调用oncreate()方法c、如果service已经启动,将先后调用oncreate()和onstart()方法d、如果service已经启动,只会执行onstart()方法,不在执行oncreate()方法 7我们都知道hanlder是线程与activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(a)a、ondestroy()b、onclear()c、onfinish()d、 onstop()8关于res/raw目录说法正确的是(a)a、这里的文件是原封不动的存储到设备上不会转换为二进制的格式b、这里的文件是原封不动的存储到设备上会转换为二进制的格式c、这里的文件最终以二进制的格式存储到指定的包中d、这里的文件最终不会以二进制的格式存储到指定的包中二.填空题1. android中常用的四个布局是。
安卓笔试题及答案一、单选题1. 安卓操作系统是基于哪个内核开发的?A. Windows内核B. Linux内核C. MacOS内核D. FreeBSD内核答案:B2. 下列哪个不是安卓应用开发中常用的布局?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. GridBagLayout答案:D3. 在安卓开发中,哪个类是所有Activity的基类?A. ActivityB. ContextC. ViewD. Application答案:A4. 以下哪个不是安卓开发中常用的数据存储方式?A. SharedPreferencesB. SQLite数据库C. File存储D. XML文件答案:D二、多选题1. 安卓应用开发中,以下哪些是常用的网络请求库?A. RetrofitB. VolleyC. OkHttpD. Picasso答案:ABC2. 在安卓开发中,下列哪些是Activity生命周期中的方法?A. onCreate()B. onStart()C. onResume()D. onPause()答案:ABCD三、判断题1. AndroidManifest.xml文件是安卓应用的配置文件,用于定义应用的组件和权限。
答案:正确2. 在安卓开发中,所有的Activity都必须继承自Activity类。
答案:正确3. Android Studio是谷歌官方推荐的安卓开发IDE。
答案:正确4. 安卓应用的最小SDK版本可以在build.gradle文件中设置。
答案:正确四、简答题1. 请简述安卓应用开发中Activity和Fragment的区别。
答案:Activity是安卓应用的四大组件之一,它提供了一个用户界面,用户可以与之交互。
Fragment是Activity的一部分,它可以被添加到Activity中,用来管理用户界面的一部分。
Fragment可以被重复使用,并且可以在不同的Activity之间共享。
Android面试必备笔试题1:Android中五种数据存储方式分别是什么?他们的特点?答:Android提供了五种存取数据的方式(1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML 的格式存放在设备中(2) SQLite数据库,存放各种数据,是一个轻量级的嵌入式数据库(3) File文件,通过读取写入方式生成文件存放数据(4) ContentProvider,主要用于让其他应用程序使用保存的数据(5) 通过网络获取数据和写入数据到网络存储空间2:说说android 中mvc 的具体体现mvc是model,view,controller的缩写,mvc包含三个部分:模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
视图(view)对象:是应用程序中负责生成用户界面的部分。
也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。
android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:(1)视图(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。
(2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写过多的代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。
(3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。
1.请描述下Activity的生命周期。
OnCreate()创建,OnStart()启动,OnResume()恢复,OnPause暂停(),OnStop()停止,OnRestart()重启,OnDestroy()销毁;2.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?在暂停OnPause()状态将数据保存重写OnSaveInstanceState()方法,在此方法中保存需要保存的数据,该方法会在Activity被调回之前调用。
当程序中某一个Activity在运行时,主动或者被动地运行另一个新的ActivityB,这时候A会执行OnSaveInstanceState(),B完成以后又会来找A,这个时候就有两种情况,一是A被收回,二是A没有收回,被收回的A就要从新调用OnCreate ()方法,不同于直接启动的是这回OnCreate()里是带上了参数SavedInstanceState,没被收回的直接执行OnResume();3. 如何将一个Activity设置成窗口的样式。
在清单文件AndroidManifest.xml中定义Activity的地方添加android:theme=”@android:style/Theme.Dialog”或android:theme=”@android:style/Theme.Tanslucent”就变成透明了。
4. 如何退出Activity?如何安全退出已调用多个Activity的Application?直接finish()即可,也可以用killProcess()和System.exit()这样的方法。
对于多个Acticvity(),第一种,记录打开的Activity,每打开一个就记录下来,退出时,关闭每一个Activiyt。
2,发送特定广播:在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可,3,递归退出:在打开新的Activity时使用startActivityForResult,然后自己加标志,在OnActivityResult中处理,递归关闭,参考:可以抛异常强制退出,5. 请介绍下Android中常用的五种布局。
LinearLayout线性布局RelativeLayout相对布局TableLayout表格布局FrameLayout框架布局AbsLayout绝对布局已淘汰6. 请介绍下Android的数据存储方式。
使用SharedPreferences,文件储存,SQLite,网络储存,ContentProvider7. 请介绍下ContentProvider是如何实现数据共享的。
一个程序可以通过实现一个Content Provider的抽象接口将自己的数据完全暴露出去,而且Content Providers是以类似数据库中表的方式将数据暴露,ContentProviders 存储和检索数据,同过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。
要想使应用程序的数据公开化,可以通过2种方法,重建一个属于自己的Content Provider或者将你的数添加到一个已经存在的Content Provider中,前提是有相同数据类型并且有写入Content Provider的权限。
8. Service生命周期,如何启用Service,如何停用Service。
OnCreate()创建,OnStart()启动,OnDestroy()销毁第一步,继承Service类Public class SMSService extends Service{}第二步,在清单文件AndroidManifest.xml文件中的<application>节点里对服进行配置<service android:name=”.SMSService”/>服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。
2,采用Context.bindService()方法启动服务有关的生命周期方法。
onCreate(),onBind(),onUnbind(),onDestroy().onBind()只有采用Context.bindService()方法启动服务时才会回调该方法。
该方法在调用者与服务绑定时被调用,当调用者与服务已经绑定,多次调用Context.bindService()方法并不会导致该方法被多次调用。
onUnbind()只有采用Context.bindService()方法启动服务时才会回调该方法。
该方法在调用者与服务解除绑定时被调用。
如果先采用startService()方法启动服务,然后调用bindService()方法绑定到服务,再调用unbindService()方法解除绑定,最后调用bindService()方法再次绑定到服务,触发的生命周期方法如下:onCreate() ->onStart() ->onBind() ->onUnbind()[重载后的方法需返回true] ->onRebind() 9. 注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。
两种,第一种,清单文件配置<receive android:name=”.IncomingSMSReceiver”> <intent-filter><action android:name=:"android.provider.Telephony.SMS_RECEIVED <intent-filter><receiver>不常驻,随程序的生命周期。
第二种,代码注册,IntentFilter filter=newIntentFilter(“android.provider.Telephony.SMS_RECEIVED”);IncomingSMSReceiver receiver=new IncomgSMSReceiver();registerReceiver(receiver.filter);10. 请解释下在单线程模型中Message、Handler、Message Queue、Looper 之间的关系。
简单的说,Handler获取当前线程中的looper对象,looper用来存放Message的Message的MessageQueue中取出Message,再有Handler进行Message的分发和处理。
Message Queue(消息队列):用来存放通过Handler发布的消息,通常附属于某一个创建它的线程,可以通过Loper.myQueue()得到当前线程的消息队列Handler:可以发布或者处理一个消息或者操作一个Runnable,通过Handler发布消息,消息将只会发送到与它关联的消息队列,只能处理该消息队列的消息。
Looper:是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列,Looper也把消息队列里的消息广播给所有的。
Handler:Handler接收到消息后调用handlerMessage进行处理,Message:消息的类型,在Handler类中的handleMessage方法中得到单个的消息进行处理。
在单线程模型下,为了线程通信问题,Android设计了一个Message Queue,线程11. AIDL的全称是什么?如何工作?能处理哪些类型的数据?Android Interface Define Language在Android中,每个应用程序都可以有自己的进程,在写UI应用的时候,经常要用到Service,在不同的进程中,怎样传递对象,显然,Java中不允许跨进程内存共享,因此传递对象,只能把对象拆分成操作系统能理解的简单形式。
以达到跨界对象访问的目的,在J2EE中,采用RMI的方式,可以通过序列化传递对象,在Android中,则采用AIDLde方式。
AIDL是一种借口描述语音,编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的,如果需要在一个Activity 中,访问另一个Service中的某一对象,需要先将对象转化为AIDL可以识别的参数(可能是多个参数),然后使用AIDL来传递这些参数,在消息的接收端,使用这些参数组装成自己需要的对象。
它使用代理类在客户端和实现层间传递值,如果要使用AIDL需要2件事:引入AIDL相关的类。
调用aidl产生的class。
AIDL创建方法。
可以用来声明一个带一个或多个方法的接口,也可以传递参数和返回值。
由于远程调用的需要,这些参数和返回值并不是任何类型。
AIDL支持的数据类型:不需要import声明的简单Java编程语言类型(int,boolean等)String,CharSequence不需要特殊声明。
List,Map和Parcelables类型,这些类型内所包含的数据成员也只能是简单数据类型,String等其他支持的类型12. 请解释下Android程序运行时权限与文件系统权限的区别。
(Edited by Sodino)运行时权限Dalvik(android授权)文件系统权限Linux内核授权13. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。
能,同过直接发送Uri把参数带过去,或者通过manifest里面的intentfilter里面的data属性。
14. 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。
请写一个算法,将该图片所有的白色不透明(0xffffffff)像素点的透明度调整为50%。
15. 你如何评价Android系统?优缺点。
一.开放性,二,挣脱运营商的束缚,三,丰富硬件选择,四,不受任何限制的开发商,不足:安全和隐私,过分依赖开发商缺,少标准配置。
16、什么是ANR ,他的全称是?如何避免它?ANR:Application Not Responding。
在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应,当用户操作在5S内应用程序没能做出反应,BroadcastReceiver在10秒内没有执行完毕,就会出现应用程序无响应对话框,这就是ANR。
避免方法:Activity应该在它的生命周期方法(如onCreate()和onResume()l里尽可能少的去做创建操作,潜在的好是的操作,例如,网络或数据库操作,或者高耗时的计算如改编图尺寸,应该在子线程里或者异步方式来完成,主线程应该提供一个Handler,以便完成时能够提交给主线程。