Android初级:

1.了解Android系统架构

应用层:
Java应用开发工程师开发之所有应用程序比如地图,浏览器,QQ等属于该层,手机受到之差信,拨号,浏览器等这些应用程序都是好叫开发人员开发的任何应用程序所替换,这点不同于其它手机操作系统固化于系统内部的体系软件,更加灵敏和个性化

使用框架层:Java framework层源码OS定制开发为应用层开发人员提供API

系运作库层: C语言包括C语言标准库,多媒体库,OpenGL ES, SQLite,
Webkit,Dalvik虚拟机等,该层是对利用框架层提供支撑之重合,
Java看硬件需经过NDK实现

Linux内核层:Android是基于Linux2.6外按,其核心系统服务一旦安全性、内存管理、进程管理、网路商以及让型都负让Linux内核

DVM与JVM区别

http://yxwang0615.iteye.com/blog/947245

分一:dvm执行的凡.dex格式文件jvm执行之是.class文件android程序编译完以后生产.class文件,然后,dex工具会管.class文件处理成.dex文件,然后把资源文件和.dex文件等包裹成.apk文件。apk就是android
package的意思。jvm执行之是.class文件。

分二:dvm是因寄存器的虚拟机而jvm执行是根据虚拟栈的虚拟机。寄存器存取速度比栈快的大半,dvm可以因硬件实现最老之优化,比较相符运动设备。

区分三:.class文件是许多之冗余信息,dex工具会去冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了近乎的探寻速度

2.控如何搭建Android开发条件

欲准备的家伙及开发包(32位/64各类, Windows/Linux) :JDKeclipse ADTSDK

1)安装JDK配置环境变量(bin)

2)安装eclipse

3) eclipse安装ADT插件—离线安装

4) eclipse指定SDK目录

5)配置SDK环境变量(toots, platform-tools)

流动: Linux常用操作系统: Red Hat, Ubuntu

3.掌握Android项目目录结构

1.src目录:src(即Source
Code),src目录用来存放在应用程序中兼有的源代码,代码的源文件一般存放于拖欠目录下的照应的包下。

2.gen索引:gen目录,该目录下一般但来一个
文件,即R文件。该文件夹下面来个R.java文件,R.java是在建立项目时自动生成的,定义该类型所有资源的目。

3.Android4.1目录:该文件夹下富含android.jar文件,这是一个Java归档文件,其中饱含构建应用程序所要的拥有的Android
SDK库(如Views、Controls)和APIs。

经android.jar将好之应用程序绑定到Android SDK和Android
Emulator,这允许而利用所有Android的库和包,且要你的应用程序在当的环境面临调剂。

4.assets目:该目录存放应用程序中利用的外部资源文件,如声音
视频等,在Android程序中可以通过输入/输出流对该目录中之公文进行读写。

5.res目录:该目录用来存放程序这之所以到之图样、界面布局文件和XML格式的叙说文件。该目录下发出多个目录。新建一个Android项目,在res目录下一般

见面出drawable,layout,valuse三独目录。drawable用来存放在图片资源,目录下一般会产生三独目录分别存放高中低三种植不同分辨率的图片,layout目录用来存放在应用程序的

界面布局文件,values目录下存放字符串资源,颜色资源,数组资源等XML文件。

6.AndroidManifest.xml

  1. Android中asset文件夹和raw文件夹区别?

报:res/raw和assets的相同点:

两边目录下之公文于包后会见原本封不动的保存在apk包中,不会见于编译成二进制。

res/raw和assets的不同点:

1)res/raw中的文本会为射到R.java文件被,访问的时段一直利用资源ID即R.raw.filename;assets文件夹下之公文未会见受射到R.java中,访问的早晚用AssetManager类。

2)res/raw不可以有目录结构,而assets则足以来目录结构,也就算是assets目录下足更建立文件夹

3)读取文件资源举例:

念取res/raw下之文件资源,通过以下办法取输入流来进展勾勒操作

InputStreamis=getResources().openRawResource(R.raw.filename);

读取assets下的文件资源,通过以下办法赢得输入流来进行勾勒操作

AssetManageram=null;

am=getAssets();

InputStreamis=am.open(“filename”);

5.掌握AndroidManifest.xml结构(应用程序入口)

AndroidManifest.xml是每个android程序中要的文件。它放在合项目之到底目录,描述了package中爆出的零部件(activities,services,等等),他们分别的兑现类似,各种会为拍卖

的数量与起步位置。除了会声称程序中之Activities, ContentProviders,
Services,和Intent
Receivers,还能指定permissions和instrumentation(安全控制和测试)

AndroidManifest.xml结构

Android程序入口:

action节点受到的android.intent.action.MAIN表明它所当的Activity是整应用程序的入口点

6.控制模拟器的使和常用adb命令

  1. adb devices

查看时连续装置

  1. adb kill-server

终止adb进程

  1. adb start-server

启动adb进程

  1. adb shell

跻身shell模式(Linux模式),当连接起多只设施时,需执行命令

adb -s设备名shell

注:进入shell模式后先后执行Linux命令

  1. adb install apk路径

设置apk至设备,当连接起多独装备时,需执行命令

adb -s设备名install apk路径

当设备之前所有次apk时,替换安装序执行命令

adb install -r apk路径

  1. adb uninstall要卸载的动包名

卸载已设置的下

  1. adb push要拷贝的文本路径 设备及存次文件之门道

以文件拷贝至设备sdcard,如adb push
F:\Android授课资料\型实训\1205A\apk\com.moluo.android_100111.apk
/sdcard

  1. adb pull设备上文件路径电脑存放文件路径

拿文件于设备拷贝到电脑,如adb pull /sdcard/com.moluo.android_100111.apk
E:/

  1. adb logcat

命令行的主意查看日志

若果要以日志保存至有文件,adb logcat -> E:/test.txt

  1. android list avd

翻时创立的保有模拟器列表

  1. emulator @模拟器名字

起步某个模拟器

12.命令行操作数据库

adb shell

cd data/data

cd package

cd databases/cd shared_prefs/ cd files

sqlite3 test.db

>.tables

即可尽响应sql语句

7.掌握Activity的生命周期及各个艺术调用时机

报经:共有七只周期函数:

voidonCreate(BundlesavedInstanceState)第一次等创时调用

voidonStart()被用户可见时调用

voidonRestart()当Activity处于stop状态又为再度开动时调用

voidonResume()当得到焦点即可与用户交互时调用

voidonPause()当失去焦点时调用

voidonStop()当不可见时调用

voidonDestroy()当销毁时调用

Activity A—> Activity B, B将A完全覆盖时生命周期调用流程:

onPause(A) –> onCreate(B) –> onStart(B) –> onResume(B)
–> onStop(A)

这会儿随”Back”按键,证明周期调用流程

onPause(B) –> onRestart(A) –> onStart(A) –>onResume(A)
–> onStop(B) –> onDestroy(B)

学业:屏幕方向来转移时怎样生命周期?

&&&&&& Android的5单经过等?

Adroid的5独过程等

5只经过等分别吗:Foreground Process (前台进程)、Visible
Process、Service Process、Background Process和Empty
Process。这几只经过等不同,他们的安先行级吧针对许不同,有高低的分。下面分别教。

1、Foreground Process (前台进程)

争的一个过程才是前台进程也? 如下情况:

a正处在Activity
Resume()状态b正处在与bound服务交互的状态c正处在服务以前台的状态,(startForeground()被调用)d
Service生命周期函数正在为实践(onCreate(),onStart(),onDestroy())e
BroadcastReceiver正在推行onReceive()方法

主干总结一下,也不怕是挪以彼此,服务以前台执行,广播于吸纳,三者其中之一满足的之历程,都是前台进程。从平安先行级的角度来说,杀死Foreground
Process需要用户应,因为这安全先行级是最高的。

**再回忆一下咱Activity的季栽状态的第一种植:Active/Runing**状态。在是状态下,Android系统一般不会见杀之Activity,除非有甚(ANR
applicationnot response或者是FC force
close)。是休是为是最高的预先级吧?2、Visible
ProcessActivity不在前台显示,但也从来不藏身,能够看的呈现,比如弹出一个对话框(input
Method)一个bound到visible或者foreground的activity的Service
,或者是一个输入法。**

这种进程等就对准承诺了Activity的状态:Paused。3、Service
Process正在运转的,不在上述两栽状态的Service4、Background
Process不可见状态的Activity进程,onStop()被调用

特别强烈,对应Activity状态的Stoped。5、Empty
Process没有运行任何Components的过程,保留这个进程要是为缓存的得。

自打以上剖析来拘禁,4只活动状态和5独过程等具有密不可分的联系。还得融会贯通。

  1. Activity四种植启动模式

于AndroidManifest.xml清单文件中的签中通过android:launchMode设置Activity启动模式

standard默认值,表示以startActivity时就创办其实例

singleTop首先检查栈顶是否发该Activity实例,有责返回,无责创建其实例

singleTask检查全堆栈有管该Activity实例,有责返回,无责创建其实例

singleInstance单实例模式,一个Activity实例独享一个职责堆栈,并且只能有一个仓房中生出该Activity的实例

9.AndroidManifest.xml清单文件标签中属性android:excludeFromRecents=”true”android:screenOrientation=”portrait”android:configChanges=”orientation|locale”的意义

答:android:excludeFromRecents表示是否可被出示在前不久开拓的activity列表里,true表示也,false表示是

android:screenOrientation表示activity显示的模式,一般用来设置activity横屏显示(horizontal)或竖屏显示(portrait)

android:configChanges=[oneormoreof:”mcc””mnc””locale””touchscreen””keyboard””keyboardHidden””navigation””orientation””fontScale”]

举凡当所指定属性(ConfigurationChanges)发生变更时,通知顺序调用onConfigurationChanged()函数,比如orientation屏幕方向发生转移,locale语言环境出反时

10.怎样拿一个Activity设置成窗口的体裁

报经:在清单文件AndroidManifest.xml中相应的竹签内装属性android:theme=”@android:style/Theme.Dialog”

  1. Activity的onSaveInstanceState()和onRestoreInstanceState()

报:Activity的onSaveInstanceState()和onRestoreInstanceState()并无是生命周期方法,它们不同让onCreate()、onPause()等生命周期方法,它们并不一定会被触发。当以遇到意外状况(如:内存不足、用户直接以Home键)由网销毁一个Activity时,onSaveInstanceState()会于调用。但是当用户积极去销毁一个Activity时,例如当行使被以返回键,onSaveInstanceState()就非会见叫调用。因为当这种状况下,用户之行事决定了不需要保存Activity的状态。通常onSaveInstanceState()只可用于保存有临时性的状态,而onPause()适合用于数据的持久化保存。

另外,当屏幕的自由化发生了改变,Activity会被损毁以让还创设,如果你想在Activity被损毁前缓存一些数码,并且以Activity被重复创设后复原缓存的多少。可以重写Activity的onSaveInstanceState()和onRestoreInstanceState()方法。

12.列举Android中各种UI特效

答:两单Activity切换时动画设置:
startActivity之后调用overridePendingTransition(int enterAnim,
intexitAnim)

Fragment切换时动画效果

图形轮播效果:通过Gallery配合Timer定时器实现

瀑布流效果:

&侧滑菜单:

CoverFlow:

Path菜单:

&关键字飞入飞出功能:

翻页效果:

ViewPager:

Fragment:

自定义Tabhost:

上评论图文混排:

13.起定义组件的兑现思路

报:Android自定义组件有三栽实现思路:

1)继承某个现有组件,在该基础及加加额外功能,如继续Gallery实现CoverFlow效果

2)复合型组件定义:继承某个Layout,实现复合组件自定义,如TextView和EditText组合实现登录注册组件

3)继承View,实现onDraw()方法,实现自己绘制组件,如翻页效果组件

14.谈谈UI中,Padding和Margin有什么区别,gravity及layout_gravity的区别

报经:Padding用来指定组件内之始末去组件边界的偏离;

Margin用来指定控件与控件之间的距离

Gravity用来指定组件内之情节相对于组件本身的岗位

Layout_gravity用来指定组件相对于其大组件的位置

15.哪个组件可以实现手风琴效果,用来促成设置界面的切近,实现抽屉效果,悬浮窗口?

报经:实现手风琴效果(ExpandableListView)

安界面的好像(PreferenceActivity)保存及sharedpreference中

抽屉效果(slidingDrawer)组件

泛窗口:PopWindow,可以兑现类似Dialog和菜单的功力

16.listview优化策略?

报:1)、自定义Adapter的getView(),对convetView进行判空,是当convertView不为空的时光一直还以convertView

故减少了广大勿必要的View的创导

2)定义一个ViewHolder,将convetView的tag设置也ViewHolder,不为空时重新祭即可

3)、当ListView加载数据量较生时得以用分页加载与图异步加载

17.ListView分页加载实现思路?

万般实现分页加载有少种植方法,一种是于ListView底部安一个按钮,用户点击即加载。另一样种是当用户滑动到底层时自动加载。

当ListView底部装一个按钮,用户点击即加载实现思路:

//加上底部View,注意要放在setAdapter方法前

ListView.addFooterView(moreView);

bt.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

pg.setVisibility(View.VISIBLE);//将速长长的可见

bt.setVisibility(View.GONE);//按钮不可见

handler.postDelayed(newRunnable(){

@Override

publicvoidrun(){

loadMoreDate();//加载重多多少

bt.setVisibility(View.VISIBLE);

pg.setVisibility(View.GONE);

mSimpleAdapter.notifyDataSetChanged();//通知listView刷新数据

}

},2000);

}

});

当用户滑动到脚时自动加载实现思路:

心想事成OnScrollListener接口重写onScrollStateChanged和onScroll方法,使用onscroll方法实现”滑动“后处理检查是否还有新的记录,如果来,添加记录及adapter,adapter调用notifyDataSetChanged更新数据;如果没有记录了,则不再加载数据。使用onScrollStateChanged可以检测是否滚到最终一实施且已滚动然后实施加载.

18.ListView图片异步加载实现思路?

1.先自内存缓存着得图片展示(内存缓冲)

2.落不至的说话从SD卡里获取(SD卡缓冲,,从SD卡获取图片是置身子线程里执行之,否则快速滑屏的语句会无敷流畅)

3.都拿走不交的言辞从网络下充斥图片并保存至SD卡同时加入内存并显示(视情况看是不是要显得)

19.view来哇几栽更新方式

答:在主线程(UI线程)可以直接调用View.invalidate()
;在子线程需要更新UI可以直接调用View.postInvalidate(),也可经过Handler发送消息于主线程,然后于handleMessage方法中经过View.invalidate()更新UI;还好于子线程中待更新UI的时候调用runOnUIThread(Runnable
)方法,然后以这方式吃更新UI,同时可以使用AsyncTask异步任务,在doInBackground执行耗时操作,然后以onPostExcute方法吃实践刷新UI动作

20.Intent之原理,作用,可以传递哪些类型的参数?

报:intent是连接Activity,Service,BroadcastReceiver,ContentProvider四大组件的通信员,,可以传递八种基本数据类和string,Bundle类型,以及落实了Serializable或者Parcelable的种类。

Intent可以分开成显式意图和隐式意图。

显式意图:调用Intent.setComponent()或Intent.setClass()方法肯定指定了组件名之Intent为显式意图,显式意图明显指定了Intent应该传递给哪个组件。

隐式意图:没有确定性指定组件名的Intent为隐式意图。Android系统会依据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最好方便的零件来拍卖这图。

21.Android底季不行组件是啊?它们的意向是呀?

报:Android有四挺组件:Activity、Service、BroadcastReceiver、ContentProvider。

Activity:应用程序中,一个Activity通常就是一个独的屏幕,它上面可以来得有控件也可监听并拍卖用户的事件做出响应。Activity之间通过Intent进行通信。

Service服务:一个Service是一模一样段长生命周期的,没有用户界面的先后,可以就此来开使监控类程序。

BroadcastReceive广播接收器:你的施用得应用她对外表事件开展过滤只对谢兴趣之外表事件(如当电话呼入时,或者数据网络可用时)进行接并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应她收到的音。

ContentProvider内容提供者:主要用以多独利用中数共享。这些多少可以储存在文件系统中要SQLite数据库。

22.叙述下Service的生命周期,Service有什么启动方法,有什么区别,怎样停用Service?**

http://blog.csdn.net/huanyufeng/article/details/5873407

报经:Service的生命周期:onCreate,onStartCommand,onDestroy,onBind和onUnbind。

一般而言发生有限栽艺术启动一个Service,它们对Service生命周期的熏陶是休雷同的。

1)通过context.startService()onCreate–>onStartCommand–>onDestroy

Service会经历onCreate到onStartCommand,然后处于运行状态,stopService的当儿调用onDestroy方法。

要是调用者自己一直退出而尚未调用stopService的语,Service会一直于后台运行。

使Service已经起步了,当我们再度启航Service时,不见面当履onCreate()方法,而是径直实施onStartCommand()方法。

2)通过context.bindService()onCreate–>
onBind—>onUnbind–>onDestroy

Service会运行onCreate,然后是调整用onBind,这个时段调用者和Service绑定在共同。调用者退出了,Srevice就会调用onUnbind->onDestroyed方法。

所谓绑定以一块儿就共存亡了。调用者也可以经过调用unbindService方法来已服务,这时候Srevice就会调用onUnbind->onDestroyed方法。

注:onStartCommand()有四栽回到回值:

http://wenku.baidu.com/view/0c2b1af8910ef12d2af9e7b5.html

START_STICKY:如果service进程被kill掉,保留service的状态吧始发状态,但未保留递送的intent对象。随后系统会尝试还创设service,由于服务状态吧初步状态,所以创建服务后必会调用onStartCommand(Intent,int,int)方法。如果当这个中从不其余启动命令于传送到service,那么参数Intent将为null。

START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在实践完onStartCommand后,服务让充分kill掉,系统将见面把它置为started状态,系统非会见活动还开该服务,直到startService(Intent
intent)方法重复于调用;。

START_REDELIVER_INTENT:重传Intent。使用是返回值时,如果以实行完onStartCommand后,服务被那个kill掉,系统会活动还开该服务,并以Intent的价值传入。

START_STICKY_COMPATIBILITY:START_STICKY的相当版本,但非保险服务被kill后定能够重复开。

23.AIDL的全称是什么?有什么的功力?**

报经:AIDL全称:Androidinterfacedefinitionlanguage(android接口定义语言),

成效:用来过进程的访问方法,即看远程服务之办法

http://blog.csdn.net/stonecao/article/details/6425019

aidl实现的手续

aidl可以传递的数据类型

24.哪防范Android应用被的Service被系统回收?

<方案一>:通过设置setForeground()提升Service优先级,将该安也前台进程

或经过当清单文件中标签内通过安装android:priority=”1000″,提升该先级

<方案二>:在startCommand()方法吃归START_STICKY或START_REDELIVER_INTENT则Service销毁后会重新开

25.Service是不是运行在主线程,Service与Activity是否运行于跟一个线程?

Service与Activity与BroadcastReceiver同样都运作于UI主线程,如果生耗时操作都见面引发ANR问题

26.IntentService的用法

http://android.blog.51cto.com/268543/528166

http://blog.csdn.net/zhf198909/article/details/6906786

大凡Service的子类,主要为此来解决在Service中处理耗时操作.

IntentService使用队列的法门将请的Intent加入队列,然后开一个worker
thread(线程)来拍卖队列中的Intent,对于异步的startService请求,IntentService会处理得一个以后再次处理第二只,每一个伸手都见面以一个单独的worker
thread中拍卖,不会见堵塞应用程序的主线程

27.注册广播有几栽方法,这些方式有啊特色与区别?

报经:第一种植:在清单文件被宣示,添加

老二栽采取代码进行登记如:

IntentFilterfilter=newIntentFilter(“android.provider.Telephony.SMS_RECEIVED”);

IncomingSMSReceiverreceiver=newIncomgSMSReceiver();

registerReceiver(receiver.filter);

个别种注册项目的分别是:

1)第二种不是常驻型广播,也就是说广播跟随程序的生命周期。

2)第一栽是常驻型,也就是说当应用程序关闭后,如果发生消息播报来,程序也会见让系统调用自动运行。

28.广播底发送方有什么样

sendBroadcast(),sendOrderedBroadcast()sendStickyBroadcast()三种

sendBroadcast()这法子的播放是会发送给持有广播接收者,按照注册的先后顺序,如果您是时段装了广播接收者的优先级,优先级如果刚好跟登记顺序相同,则非会见发出另问题,如果逐个不一致,会生leaked
IntentReceiver这样的慌,并且于头里的播音接收者不可知调用abortBroadcast()方法将该停下,如果调用会出BroadcastReceiver
trying to return result during a non-ordered
broadcast的异常,当然,先收到广播的receiver可以改广播数据。

sendOrderedBroadcast()措施顾名思义就是priority的属性能于作用,并且于排前面的receiver可以随时终止广播的殡葬。还有这api能指定final的receiver,这个receiver是最后一个接广播时间的receiver,并且一定会收到及广播事件,是未能够为眼前的receiver拦截的。实际做尝试的情事是这般的,假要自己发生3单receiver依序排列,并且sendOrderedBroadcast()方法指定了一个finalReceiver,那么intent传递给这4单Receiver的逐一吗Receiver1–>finalReceiver–>Receiver2–>finalReceiver–>Receiver3–>finalReceiver。这个特点可就此来统计体系受到能够监听某种广播的Receiver的数。

sendStickyBroadcast()字面意思是发送粘性的广播,使用这个api需要权限android.Manifest.permission.BROADCAST_STICKY,粘性广播的特色是Intent会一直保存到广播事件了,而这种广播为从没所谓的10秒限制,10秒限制是据便的播报如果onReceive方法执行时间太长,超过10秒的下系统会将这个广播置为好杀死的candidate,一旦系统资源不够的时节,就见面杀这广播而受其不执。

流动: (下面是广播接收者的生命周期以及一些细节部分:

1.播放接收者的生命周期是充分短的,在收到广播的时节创建,onReceive()方法了后销毁

2.播放接收者中不用做一些耗时的工作,否则会弹出Application No
Response错误对话框

3.不过好也休想当广播接收者中创造建子线程做耗时的工作,因为广播接收者为销毁后经过就改为了空进程,很易吃网杀掉

4.耗时之较丰富之工作极端好放在服务着形成)

29.简述Android中之IPC机制(进程中的通信机制)IPC(Inter-ProcessCommunication,进程中通信).

是因为android系统面临应用程序之间未可知共享内存。在android
SDK中提供了4种植用于跨进程通讯的方式。这4栽方式正对应于android系统面临4种应用程序组件:Activity、Content
Provider、Broadcast和Service。其中Activity可以过进程调用其他应用程序的Activity;Content
Provider可以超越进程看其他应用程序中之数目(以Cursor对象形式返回),当然,也可以针对其他应用程序的多少开展多、删、改操
作;Broadcast可以为android系统面临存有应用程序发送广播,而要跨越进程通讯的应用程序可以监听这些广播;Service和Content
Provider类似,也可看其他应用程序中的数量,但不同之是,Content
Provider返回的凡Cursor对象,而Service返回的是Java对象,这种好超越进程通讯的劳务叫AIDL服务。

aidl是AndroidInterfacedefinitionlanguage的缩写,它是同样栽android内部进程通信接口的描述语言,通过它我们可定义进程之中的通信接口.编译器可以通过扩展名为aidl的公文充分成一截代码,通过事先定义之接口及少个经过之中通信进程的目的.

30.什么是ANR哪些避免它们?(Android线程间的通信方式?**

报:ANR:ApplicationNotResponding(应用程序无响应).当出现下列情形常,Android就见面显示ANR对话框了:对输入事件(如按键、触摸屏事件)的应超过5秒意向接受器(intentReceiver)超过10秒钟仍不实行了Android应用程序完全运转于一个独门的线程中(例如main)。这就是意味着,任何在主线程遭遇运行的,需要耗费大量时的操作都见面引发ANR。

解决方案来点儿种:

1.AsyncTask异步任务中,doInBackground()和onPostExecute(Result)两单方式充分主要

doInBackground()这个办法运行在后台线程中,主要担负执行那些老耗时的操作,如运动护理体系受到的网络连接、解析XML等操作。该措施必须重载。

onPostExecute(Result)这个办法呢运行为UI线程,在doInBackground(Params…)方法执行后调用,该方式用于拍卖后台任务执行后回的结果。

2.子thread+handler

31.
Handler底运行机制(运行规律)(Handler,Looper,MessageQueue,Message,Thread之间的关系)

一个Handler允许你发送和拍卖Message和Runable对象,每个线程都发生友好的Looper,每个Looper中查封装着MessageQueue。Looper负责不断的从友好之消息队列里取出队头之任务要信息执行。每个handler也跟线程关联,Handler负责把Message和Runable对象传递给MessageQueue(用到post,sendMessage等办法),而且当这些目标离开MessageQueue时,Handler负责执行他们(用到handleMessage方法)。

中间Message类就是概念了一个信,这个信息遭到寓一个叙符和任意的数码对象,这个消息让用来传递给Handler.Message对象提供额外的片独int域和一个Object域。

32.
AsyncTask底显要方法发生什么样?如何启动与住AsyncTask?如何以AsyncTask中更新UI

答: AsyncTask的机要方式来doInBackGround()运行在继几线程,执行耗时操作

onPostExcute()运行于UI主线程,用于执行刷新UI的代码

起步通过execute()方法

停止通过cancel(boolean
flag)方法取消执行,传入参数ture表示如果调用方法时异步任务在推行则打断执行并注销,如果传false表示执行了再取消

刷新UI的代码一般卸载onPostExcute()方法吃

33.Android中之五种存储方及其使用场景

答:1)SharedPreferences

储存路径:(data/data/packagename/shares_prefs),轻量级存储,以键值对的款型储存于xml中,一般用来保存应用中之装置属性

2)文件存储SD卡存储多媒体文件,文件缓存

3)Sqlite数据库嵌入式存储,存储路径:(data/data/packagename/databases),一种植嵌入式数据库,支持sql语言,存储大量结构性数据

4)ContentProvider进程(应用程序)间数共享,数据源可以是sqlite,也得是xml,相关类:ContentResolver(内容解析器),ContentObserver(

数量观察者)

5)网络存储天气数据的xml,json格式等等,通过HttpUrlConnection,HttpClient,或者SOAP协议获取数据

  1. Android中的卡通片API,及项目遭到的用

答:
Android中起一定量栽动画,帧动画与补间动画,补间动画又发生运动,旋转,缩放,渐变动画

3.0自此还要生出新特征属性动画

路面临采用状况:项目启动向导动画,
Activity切换时动画效果(overriedPendingTransaction()),类似Tab标签页选中宗背景的切换,
Fragment切换时动画效果设置(setTransation()),

ViewPager翻页时动画效果

动画效果不得以于onCreate()方法被启动,因为此时窗口没有完全渲染成功,可以再onWindowFocusChanged()方法被启动动画

35.广播视频发怎样实现方式?

答:1.动系统自带的播放器来播音,指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。

//调用系统自带的播放器

Intentintent=newIntent(Intent.ACTION_VIEW);

intent.setDataAndType(uri,”video/mp4″);

startActivity(intent);

2.使用VideoView组件来播音,可以做MediaController来实现播控,只是不可知随便改动视频的分寸和职务。

3.运用MediaPlayer和SurfaceView来兑现,这种办法很灵巧,可以起定义视频播放的轻重缓急及岗位。

36.哪扫描SD卡所有的多媒体资源:图片,视频,音频

1).通过文件过滤方式扫描(必须制定相应的后缀)

2).通过系统提供的ContentProvider获取

http://ZGC-20130520CLI/svn/pact\_train/

相关文章

网站地图xml地图