收藏 分享(赏)

面试题.doc

上传人:weiwoduzun 文档编号:4847243 上传时间:2019-01-16 格式:DOC 页数:52 大小:382KB
下载 相关 举报
面试题.doc_第1页
第1页 / 共52页
面试题.doc_第2页
第2页 / 共52页
面试题.doc_第3页
第3页 / 共52页
面试题.doc_第4页
第4页 / 共52页
面试题.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、android 面试题整理 itcast/传智播客 2. 请描述一下 Activity 生命周期。生命周期描述的是一个类 从创建(new 出来)到死亡(垃圾回收)的过程中会执行的方法在这个过程中 会针对不同的生命阶段会调用不同的方法Activity 从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:oncreate ondestroy onstop onstart onresume onpause 其实这些方法都是两两对应的,onCreate 创建与 onDestroy 销毁;onStart 可见与 onStop 不可见;onResume 可编辑(即焦点)

2、与 onPause;对话框的弹出, Activity.this 对话框是 activity 的一部分. 这 6 个方法是相对应的,那么就只剩下一个 onRestart 方法了,这个方法在什么时候调用呢?答案就是:在 Activity 被 onStop 后,但是没有被 onDestroy,在再次启动此 Activity 时就调用onRestart(而不再调用 onCreate)方法;如果被 onDestroy 了,则是调用 onCreate 方法。最后讲自己项目中的经验,比如说豆瓣客户端每次进入某个界面的时候都要看到最新的数据,这个刷新列表的操作 就放在 onStart()的方法里面.fillD

3、ata() 这样保证每次用户看到的数据都是最新的.多媒体播放, 播放来电话. onStop() 视频, 视频声音设置为 0 , 记录视频播放的位置 mediaplayer.pause();onStart() 根据保存的状态恢复现场. mediaplayer.start(); 在读文档的时候 还发现 activity 还有两个方法 onPostResume() 和 OnPostCreate()这两个生命周期的方法,不过开发的时候没有用到过.3. 两个 Activity 之间跳转时必然会执行的是哪几个方法。一般情况比如说有两个 activity,分别叫 A,B ,当在 A 里面激活 B 组件的时候

4、, A 会调用 onPause()方法,然后 B 调用 onCreate() ,onStart(), OnResume() ,这个时候 B 覆盖了窗体, A 会调用 onStop()方法. 如果 B 呢 是个透明的 ,或者是对话框的样式, 就不会调用 onStop()方法4. 横竖屏切换时候 Activity 的生命周期。这个生命周期跟清单文件里的配置有关系1、不设置 Activity 的 android:configChanges 时,切屏会重新调用各个生命周期默认首先销毁当前 activity,然后重新加载Onpause onstop ondestory oncreate onstart

5、onresume 2、设置 Activity 的 android:configChanges=“orientation|keyboardHidden“时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法游戏开发中, 屏幕的朝向都是写死的. 5. 如何将一个 Activity 设置成窗口的样式。可以自定义一个 activity 的样式,详细见手机卫士的程序详细信息android:theme=“style/FloatActivity“ E:day9mobilesaferesvaluesstyle6. 你后台的 Activity 被系统 回收怎么办?如果后台

6、的Activity 由于某原因被系统回收可了,如何在被系统回收之前保存当前状态?除了在栈顶的 activity,其他的 activity 都有可能在内存不足的时候被系统回收,一个 activity 越处于栈底,被回收的可能性越大.android 面试题整理 itcast/传智播客 protected void onSaveInstanceState(Bundle outState) super.onSaveInstanceState(outState);outState.putLong(“id“, 1234567890);public void onCreate(Bundle savedIns

7、tanceState) /判断 savedInstanceState 是不是空./如果不为空就取出来super.onCreate(savedInstanceState);7. 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?退出 activity 直接调用 finish () 方法 . /用户点击 back 键 就是退出一个 activity 退出 activity 会执行 onDestroy()方法 .1、抛异常强制退出:该方法通过抛异常,使程序 Force Close。 验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出 Forc

8、e Close 的窗口。/安全结束进程 android.os.Process.killProcess(android.os.Process.myPid();2、记录打开的 Activity:每打开一个 Activity,就记录下来。在需要退出时,关闭每一个 Activity 即可。List lists ; 在 application 全集的环境里面 lists = new ArrayList();每一个 activity 在执行 oncreate()方法的时候 lists.add(this);Ondestory() lists.remove(this);lists.add(activity);

9、for(Activity activity: lists)activity.finish();3、发送特定广播:在需要结束应用时,发送一个特定的广播,每个 Activity 收到广播后,关闭即可。/给某个 activity 注册接受接受广播的意图 registerReceiver(receiver, filter)/如果过接受到的是 关闭 activity 的广播 就调用 finish()方法 把当前的 activity finish()掉 4、递归退出在打开新的 Activity 时使用 startActivityForResult,然后自己加标志,在 onActivityResult 中处

10、理,递归关闭。404 退出程序 OnActivityResult(); 讲一讲你对 activity 的理解 把上面的几点用自己的心得写出来8. service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?默认情况,如果没有显示的指定 service 所运行的进程, Service 和 activity 是运行在当前 app 所在进程的 main thread(UI 主线程)里面 service 里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )在子线程中执行 new Thread().start();特殊情况 ,可以在清单文件配置 service

11、 执行所在的进程 ,让 service 在另外的进程中执行 android 面试题整理 itcast/传智播客 9. 两个 Activity 之间怎么传递数据?基本数据类型可以通过. Intent 传递数据 extras.putDouble(key, value)intent.putExtra(name, value) / 通过 intent putExtra 方法 基本数据类型 都传递 Bundle bundle = new Bundle();bundle.putShort(key, value);intent.putExtras(bundle);intent.putExtras(bundl

12、e)获取到激活他的 getIntent();Intent intent = getIntent();Bundle bundle = intent.getExtras();Bundle 类似map的集合 intent.getStringExtra(“key“,“value“);intent.getBooleanExtra(“key“,“value“)Application 全局里面存放 对象 ,自己去实现自己的 application 的这个类,基础系统的 application , 每个 activity 都可以取到 让对象实现 implements Serializable 接口把对象存放到

13、文件上. 让类实现 Serializable 接口, 然后可以通过 ObjectOutputStream /对象输出流 File file = new File(“c:1.obj“);FileOutputStream fos = new FileOutputStream(file);ObjectOutputStream oos = new ObjectOutputStream(fos);Student stu = new Student();stu.setId(“10001“);stu.setName(“zs“);oos.writeObject(stu);FileInputStream fis

14、 = new FileInputStream(file);ObjectInputStream ois = new ObjectInputStream(fis);Student stu1 = (Student) ois.readObject();System.out.println(stu1.getName();Parcelable 和 Serializable Parcelable 把对象序列化到 android 操作系统 的一块公用的内存空间 文件/网络 /传递数据的引用 intent.setData(Uri) Uri.fromFile(); /大图片的传递contentResolver.g

15、etInputStream(uri);10. 怎么让在启动一个 Activity 是就启动一个 service?在 activity 的 onCreate()方法里面 startService();11. 同一个程序,但不同的 Activity 是否可以放在不同的 Task 任务栈中?比方说在激活一个新的 activity 时候, 给 intent 设置 flagIntent 的 flag 添加 FLAG_ACTIVITY_NEW_TASK singleinstance 单独的任务栈这个被激活的 activity 就会在新的 task 栈里面android 面试题整理 itcast/传智播客

16、Intent intent = new Intent(A.this,B.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);12. Activity 怎么和 service 绑定,怎么在 activity 中启动自己对应的 service?startService() 一旦被创建 调用着无关 没法使用 service 里面的方法 bindService () 把 service 与调用者绑定 ,如果调用者被销毁, service 会销毁bindService() 我们可以使用 service 里

17、面的方法bindService(). 让 activity 能够访问到 service 里面的方法构建一个 intent 对象,Intent service = new Intent(this,MyService.class);通过 bindService 的方法去启动一个服务,bindService(intent, new MyConn(), BIND_AUTO_CREATE);ServiceConnection 对象(重写 onServiceConnected 和 OnServiceDisconnected 方法) 和BIND_AUTO_CREATE.private class mycon

18、n implements ServiceConnection public void onServiceConnected(ComponentName name, IBinder service) / TODO Auto-generated method stub/可以通过 IBinder 的对象 去使用 service 里面的方法 public void onServiceDisconnected(ComponentName name) / TODO Auto-generated method stub13. 14 .什么是 Service 以及描述下它的生命周期。Service 有哪些启动

19、方法,有什么区别,怎样停用Service?在 Service 的生命周期中,被回调的方法比 Activity 少一些,只有 onCreate, onStart, onDestroy,onBind 和 onUnbind。通常有两种方式启动一个 Service,他们对 Service 生命周期的影响是不一样的。1 通过 startServiceService 会经历 onCreate 到 onStart,然后处于运行状态,stopService 的时候调用 onDestroy 方法。如果是调用者自己直接退出而没有调用 stopService 的话,Service 会一直在后台运行。2 通过 bin

20、dService Service 会运行 onCreate,然后是调用 onBind, 这个时候调用者和 Service 绑定在一起。调用者退出了,Srevice 就会调用 onUnbind-onDestroyed 方法。所谓绑定在一起就共存亡了。调用者也可以通过调用 unbindService 方法来停止服务,这时候Srevice 就会调用 onUnbind-onDestroyed 方法。需要注意的是如果这几个方法交织在一起的话,会出现什么情况呢?一个原则是 Service 的 onCreate 的方法只会被调用一次,就是你无论多少次的 startService 又bindService,S

21、ervice 只被创建一次。android 面试题整理 itcast/传智播客 如果先是 bind 了,那么 start 的时候就直接运行 Service 的 onStart 方法,如果先是 start,那么 bind的时候就直接运行 onBind 方法。如果 service 运行期间调用了 bindService,这时候再调用 stopService 的话,service 是不会调用onDestroy 方法的,service 就 stop 不掉了,只能调用 UnbindService, service 就会被销毁如果一个 service 通过 startService 被 start 之后,

22、多次调用 startService 的话,service 会多次调用 onStart 方法。多次调用 stopService 的话,service 只会调用一次 onDestroyed 方法。如果一个 service 通过 bindService 被 start 之后,多次调用 bindService 的话,service 只会调用一次onBind 方法。多次调用 unbindService 的话会抛出异常。15. 不用 service,B 页面为音乐播放,从 A 跳转到 B,再返回,如何使音乐继续播放?这个问题问的很山寨.默认不做任何处理,B 里面的音乐都能播放. 遇到问题, 可以随机应变,

23、灵活发挥,多考虑些细节,比如说这个题就可以这样说,说说你对startActivityForResult 的理解()A 开启 B 的时候,用 startActivityForResult()方法, B 返回的时候把播放的状态信息返回给 A ,A 继续播放音乐. 16. 什么是 IntentService?有何优点?普通的 service ,默认运行在 ui main 主线程Sdk 给我们提供的方便的,带有异步处理的 service 类,异步处理的方法 OnHandleIntent()OnHandleIntent() 处理耗时的操作17. 什么时候使用 Service?拥有 service 的进程

24、具有较高的优先级官方文档告诉我们,Android 系统会尽量保持拥有 service 的进程运行,只要在该 service 已经被启动(start)或者客户端连接(bindService)到它。当内存不足时,需要保持,拥有 service 的进程具有较高的优先级。1 如果 service 正在调用 onCreate, onStartCommand 或者 onDestory 方法,那么用于当前 service 的进程相当于前台进程以避免被 killed。2 如果当前 service 已经被启动(start),拥有它的进程则比那些用户可见的进程优先级低一些,但是比那些不可见的进程更重要,这就意味着

25、 service 一般不会被 killed.3 如果客户端已经连接到 service (bindService),那么拥有 Service 的进程则拥有最高的优先级,可以认为 service 是可见的。4 如果 service 可以使用 startForeground(true)方法来将 service 设置为前台状态,那么系统就认为是对用户可见的,并不会在内存不足时 killed。如果有其他的应用组件作为 Service,Activity 等运行在相同的进程中,那么将会增加该进程的重要性。1.Service 的特点可以让他在后台一直运行,可以在 service 里面创建线程去完成耗时的操作.

26、 天气预报 widget TimerTask Timer 定期执行 timertask 2.Broadcast receiver 捕获到一个事件之后,可以起一个 service 来完成一个耗时的操作. Broadcast receiver 生命周期 和 响应时间很短 3.远程的 service 如果被启动起来,可以被多次 bind, 但不会重新 create. 索爱手机 X10i 的人脸识别的 service 可以被图库使用,可以被摄像机,照相机等程序使用.18. 请描述一下 Intent 和 Intent Filter。Android 中通过 Intent 对象来表示一条消息,一个 Inte

27、nt 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。android 面试题整理 itcast/传智播客 通过 Intent 可以实现各种系统组件的调用与激活. Intent filter: 可以理解为邮局或者是一个信笺的分拣系统这个分拣系统通过 3 个参数来识别Action: 动作 Intent.ation_view Data: 数据 uri uri mimeCategory : 而外的附加信息 Action 匹配Action 是一个用户定义的

28、字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其 节点指定一个 Action 列表用于标示 Activity 所能接受的“动作” ,例如:如果我们在启动一个 Activity 时使用这样的 Intent 对象:Intent intent =new Intent(); intent.setAction(“cn.itcast.action“); 那么所有的 Action 列表中包含了“cn.itcast”的 Activity 都将会匹配成功。Androi

29、d 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent 中,以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。URI 数据匹配一个 Intent 可以通过 URI 携带外部数据给目标组件。在 节点中,通过 节点匹配外部数据。mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:电话的 uri tel: 12345 http:/自己定义的 uri itcast:/cn.itcast/

30、person/10如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。Category 类别匹配节点中可以为组件定义一个 Category 类别列表,当 Intent 中包含这个列表的所有项目时 Category 类别匹配才会成功。默认是 DEFAULT19. Intent 传递数据时,可以传递哪些类型数据?1.一般的基本数据类型 Intent .putextra() intent.getStringextra();2. 数据的 uri, intent.setData() intent.getData();20. 说说 Activit

31、y,Intent,Service 是什么关系 。麦当劳和麦当娜的关系是什么关系?android 面试题整理 itcast/传智播客 这种问题,就讲下 activity,讲一下 service,说一下 通过 intent 去激活组件,传递数据.说自己项目中有这样一个网络更新的功能,显示界面就用的 activity, 后台有个 service 每隔半小时都去访问下服务器获取更新的数据开启服务用的是 intent 来开启21. 请描述一下 Broadcast Receiver。有很多广播接收者 ,系统已经实现了.广播分两种 有序广播无序广播指定接收者的广播 . 是不可以被拦截掉的 onReceive

32、() 方法. abortBroadcast();有序广播有一个特例sendOrderedBroadcast(intent, receiverPermission, resultReceiver, scheduler, initialCode, initialData, initialExtras);resultReceiver 广播接受者 如果我们显示的指定了广播接收者 无论如何 都会接受广播 时间 abortBroadcast(); 的方法不会终止广播时间 SetresultData(); Sticky sendStickyBroadcast(intent) / 阴魂不散的广播 Wifi 设

33、置用于接收系统的广播通知, 系统会有很多 sd 卡挂载,手机重启,广播通知,低电量,来短信等,一个 apk 的安装成功.手机卫士中自定义一个 broadcast receiversms_received 来获取短信到来的广播, 根据黑名单来判断是否拦截该短信.画画板生成图片后,发送一个 sd 挂载的通知,通知系统的 gallery 去获取到新的图片.Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse(“file:/“+Environment.getExternalStorageDirectory();sendBroa

34、dcast(intent);22. 在 manifest 和代码中如何注册和使 用 broadcast receiver 。设置广播接收者的优先级,设置广播接受者的 action 名字 等详细见工程代码.android 面试题整理 itcast/传智播客 代码中注册,如果代码没有执行,就接受不到广播事件 registerReceiver(receiver, filter);23. 请介绍下 ContentProvider 是如何实现数据共享的。把自己的数据通过 uri 的形式共享出去android 系统下 不同程序 数据默认是不能共享访问 需要去实现一个类去继承 ContentProvider

35、public class PersonContentProvider extends ContentProviderpublic boolean onCreate()/query(Uri, String, String, String, String)insert(Uri, ContentValues)update(Uri, ContentValues, String, String)delete(Uri, String, String)content:/ 代表 contentprovider 技巧: 1.看 urlmarcher. 2. 根据匹配码 查看增删改查的具体实现 24. 请介绍下

36、Android 的数据存储方式。文件 访问权限. sdcard /data/data/包名/files 内存里面/ context.openFileInput(name) 默认是私有的访问权限 数据库 sqlite SharedPreference /包名/shared_preps Context.modeprivate网络 socket tcp 面向连接 打电话 udp 平信 udp, http httpurlconnection Android httpclient post get ftp 的网络 file transport protocol 25. 为什么要用 ContentProv

37、ider?它和 sql 的实现上有什么差别?屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的 uri 就可以了,对应的参数 .不同 app 之间共享,操作数据 android 面试题整理 itcast/传智播客 但是 contentprovider 还可以去增删改查本地文件. xml 文件的读取,更改,网络数据读取更改 Sql 也有增删改查的方法.26. 请介绍下 Android 中常用的五种布局。FrameLayout(帧布局) ,LinearLayout (线性布局) ,AbsoluteLayout(绝对布局) ,RelativeLayout(相对布局) ,TableLayout(

38、表格布局)FrameLayout从屏幕的左上角开始布局,叠加显示, 实际应用 播放器的暂停按钮. LinearLayout线性布局,这个东西,从外框上可以理解为一个 div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout 里面又可分为垂直布局(android:orientation=“vertical“)和水平布局(android:orientation=“horizontal“ ) 。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。AbsoluteLayout 绝对布局犹如 div 指定了 absolute 属性,

39、用 X,Y 坐标来指定元素的位置 android:layout_x=“20px“ android:layout_y=“12px“ qq 斗地主 qq 游戏大厅 800*480 800*480.apk fwvga 854*480 320*240指定平板机型的游戏开发中经常用到绝对布局 widget 绝对布局 指定机型的平板游戏开发. 2.3 3.0 android 2.2 2.3 2.3 sip 开发网络电话 session setup protocol 2.3 支持摄像头Android 3.0 3.1 针对平板电脑 分裂4.0 平板 平板 电视机机顶盒 1. 界面布局 任务管理器 gridvi

40、ew 2. 手机 任务管理 listview lephone lepad RelativeLayout相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below=“id/aaa“ 该元素在 id 为 aaa 的下面android:layout_toLeftOf=“id/bbb“ 改元素的左边是 bbb相对于父元素的地方android:layout_alignParentLeft=“true“ 在父元素左对齐android:layout_alignParentRight=“true“ 在父元素右对齐TableLayout 表格布局

41、类似 Html 里面的 Table。每一个 TableLayout 里面有表格行 TableRow,TableRow 里面可以具体定义每一个元素,设定他的对齐方式 android:gravity=“ 。每一个布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。oa 自动化 生成报表 ,图标 表示 css div webview android 面试题整理 itcast/传智播客 27. 谈谈 UI 中, Padding 和 Margin 有什么区别?Padding 文字对边框, margin 是控件与控件之间的距离28. widget 相对位置的完成在 activit

42、y 的哪个生命周期阶段实现。这个题没看懂 widget 可以理解成桌面小控件, 也可以理解成 某个 button, imageview 这样的控件onmeasure() / 计算 控件在屏幕上的位子 某个 view 要显示在界面 ondraw 被显示到界面上的29. 请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系。Activity 里面默认会帮创建 Looper 子线程里面 显示土司Looper.parepare();ToastLooper.loop();30. AIDL 的全称是什么?如何工作?Android interface

43、definition language (android 接口定义语言) , 用来跨进程的访问方法, 访问远程的服务的方法. 如何工作 day7 queryStudent . .endcall();手机卫士 Itelephony 接口挂断电话. 31. 请解释下 Android 程序运行时权限与文件系统权限的区别。Android 程序执行需要读取到安全敏感项必需在 androidmanifest.xml 中声明相关权限请求, 打电话,访问网络,获取坐标,写 sd 卡,读写联系人等安装的时候会提示用户-rw- 私有权限 -rw-rw-rw- 全局可读可写 linux 系统的文件权限 文件系统的权

44、限是 linux 权限. 比如说 sharedpreference 里面的 Context.Mode_privateContext.Mode.world_read_able Context.Mode_world_writeable android 面试题整理 itcast/传智播客 777 自己 同组 其他root 是危险的行为 32. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?Intent .setAction(VIEW)setData(“http:/“)找到对应的浏览器的意图,传递数据 URI , 激活这个意图Intent intent = new Intent();/ com

45、.android.browser/.BrowserActivity intent.setClassName(“com.android.browser“, “com.android.browser.BrowserActivity “);Intent.setdata(uri);queryintentactivity(); 推广自己产品的操作33. 对 android 主线程的运用和理解。主 ui 线程不能执行耗时的操作, 34. 对 android 虚拟机的理解,包括内存管理机制垃圾回收机制。虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制 默认 16M 谈谈加载图片的时候怎么处理大图片的,垃

46、圾回收,没有引用的对象,在某个时刻会被系统 gc 掉.System.gc(); 不是立刻去执行垃圾回收. Moblietv 获取 300 30K 频道.icon gallery 手机电视. 视频点播. Onstop() 通知 gc();别的界面图片 白板. 遇到一个不可复现的 bug, 不解决 wont fix 35. Framework 工作方式及原理,Activity 是如何生成一个 view 的,机制是什么。反射 , 配置文件 可以讲下 activity 的源码,比如说 每个 activity 里面都有 window.callback 和 keyevent.callback,一些回调的接

47、口或者函数吧. 框架把 activity 创建出来就会调用里面的这些回调方法,会调用 activity 生命周期相关的方法.setContentView();普通的情况:Activity 创建一个 view 是通过 ondraw 画出来的, 画这个 view 之前呢,还会调用 onmeasure 方法来计算显示的大小.Surfaceview 直接操作硬件 opengl .GLSurfaceView 图像要想被显示到界面上, 需要设备显卡, 显存.写到显存. 36. android 本身的一些限制,比如 apk 包大小限制,读取大文件时的时间限。这个问题问的有问题, apk 包大小限制不好说,极

48、品飞车有 100M 还是能装到手机上,/ apk 资源文件素材. android 面试题整理 itcast/传智播客 世面 google market 上大程序 主程序 很小 510M 下载 sdcard15 分钟之内 申请退款 apk 包,精简包, 素材存放在服务器. 游戏程序.读大文件的时间限制应该是 main 线程里面的时间限制吧.5 秒.37. 如何加载的音乐信息,如何改善其效率。Mp3 作者信息 专辑 图片 歌词信息 id3 id3v1 id3v2Android 提供 mediascanner,mediaStore 等接口, 音乐文件的信息都会存放到系统的数据库表中,可以通过 con

49、tent provider 获取,显示出来,改善效率,是个常见问题, 可以从以下几个方面作答,分批加载数据, 延时加载数据, 合理使用缓存等.Java 虚拟机, 目标, 加快 java 程序执行速度 预先加载一些 都会的使用的大的 class 的字节码, 提前加载.时间换时间空间换时间 38. ListView 如何提高其效率?复用 convertview , 历史的 view 对象 异步加载数据, 分页加载数据, onscallLinster();Static class ViewHolder 使用静态的 view 对象 避免创建过多的 view.把下载后的数据缓存到数据库里 客户端和服务器 协同 作战 .Http 请求 If-modify-since : 检查数据是否更新 1.html 2001 年 302 拿缓存 39. 启动应用后,改变系统语言,应用的语言会改变么?会40. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别? 区别是根据 activity 在 manifest 里面的配置,这个 activity

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 招聘面试

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报