2.存储数据有哪些方式文件存储,sharedpreference存储,sqllite存储,contentprivider存储,网络存储
3.如何将一个Activity设置成窗口的样式。可以自定义一个activity的样式,详细见手机卫士的程序详细信息android:theme="@android:style/Theme.Dialog"
4.如何退出Activity?如何安全退出已调用多个Activity的Application?每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。在application全集的环境里面List
5.两个Activity之间怎么传递数据?基本数据类型可以通过.Intent传递数据Bundlebundle=newBundle();bundle.putShort(key,value);intent.putExtras(bundle);获取到激活他的getIntent();Intentintent=getIntent();Bundlebundle=intent.getExtras();Bundle类似map的集合intent.getStringExtra("key","value");
6.Activity怎么和service绑定,怎么在activity中启动自己对应的service?startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。stopService停止bindService()把service与调用者绑定,如果调用者被销毁,service会销毁//unbindService(conn);//解除绑定onCreate,onStart,onDestroy,
7.什么时候使用service1.Service的特点可以让他在后台一直运行,可以在service里面创建线程去完成耗时的操作.后台播放音乐,录音通话记录2.Broadcastreceiver捕获到一个事件之后,可以起一个service来完成一个耗时的操作.
8.Intent传递数据时,可以传递哪些类型数据?1.一般的基本数据类型Intent.putextra()intent.getStringextra();2.数据的uri,intent.setData()intent.getData();
10.请介绍下ContentProvider是如何实现数据共享的。android系统下不同程序数据默认是不能共享访问把自己的数据通过uri的形式共享出去(查看短信,查看通讯录联系人)1.看urlmarcher.2.根据匹配码查看增删改查的具体实现
11.为什么要用ContentProvider?它和sql的实现上有什么差别?屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了,对应的参数.
12.请介绍下Android中常用的五种布局。LinearLayout(线性布局),RelativeLayout(相对布局),FrameLayout(帧布局),AbsoluteLayout(绝对布局),TableLayout(表格布局)
13.谈谈UI中,Padding和Margin有什么区别?Padding文字对边框内间距,margin是控件与控件之间的距离,外间距
14.widget相对位置的完成在activity的哪个生命周期阶段实现。widget可以理解成桌面小控件,也可以理解成某个button,imageview这样的控件…onmeasure()//计算控件在屏幕上的位子15.activity的生命周期。activity主要生命周期的方法说明:onCreate(BundlesavedInstanceState):创建activity时调用。设置在该方法中,还以Bundle的形式提供对以前储存的任何状态的访问!onStart():activity变为在屏幕上对用户可见时调用。onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是保护现场,压栈吧!onStop():activity被停止并转为不可见阶段及后续的生命周期事件时调用。onRestart():重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。onDestroy():activity被完全从系统内存中移除时调用,该方法被
16.在Android中,怎么节省内存的使用,怎么主动回收内存?尽量多使用内部类提高程序效率回收已经使用的资源,合理的使用缓存合理设置变量的作用范围application对象
17.dvm的进程和Linux的进程,应用程序的进程是否为同一个概念Dvm的进程是dalivk虚拟机进程,每个android程序都运行在自己的进程里面,每个android程序系统都会给他分配一个单独的liunxuid(userid),每个dvm都是linux里面的一个进程.所以说这两个进程是一个进程.
18.谈谈Android的优点和不足之处。1、开放性,开源ophone阿里云(完全兼容android)乐os2、挣脱运营商束缚3、丰富的硬件选择mtkandroid4、不受任何限制的开发商5、无缝结合的Google应用缺点也有5处:1、安全问题、隐私问题2、卖手机的不是最大运营商3、运营商对Android手机仍然有影响4、山寨化严重5、过分依赖开发商,缺乏标准配置版本过多
20.android中的动画有哪几类,它们的特点和区别是什么?两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
22,udp连接和TCP的不同之处tcp/滑动窗口协议.拥塞控制.可靠的连接,三次握手udp不关心数据是否达到,是否阻塞,不可靠的连接画面优先.tcp流畅优先udp
23.handler机制的原理是一个消息的处理者,是满足线程间的通讯,和传递一些信息Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper:一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。2)Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从MessageQueue取出)所送来的消息。3)MessageQueue(消息队列):用来存放线程放入的消息。4)线程:UIthread通常就是mainthread,而Android启动程序时会替它建立一个MessageQueue。
4.singleInstance单态单例模式单一实例,整个手机操作系统里面只有一个实例存在。不同的应用去打开这个activity共享公用的同一个activity。他会运行在自己单独,独立的任务栈里面,并且任务栈里面只有他一个实例存在。应用场景:呼叫来电界面InCallScreen
29.注册广播哪几种方法2种,1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。registerReceiver2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。一种是在AndroidManifest.xml中配置广播
30.横竖屏切换时候activity的生命周期1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
31.如何将打开resaw目录中的数据库文件解答:在Android中不能直接打开resaw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用getResources().openRawResource方法获得resaw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在AndroidSDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。
32.说说mvc模式的原理,它在android中的运用MVC(Model_view_contraller)”模型_视图_控制器”。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model传递到view上
33、你后台的Activity被系统回收怎么办:
36.IntentService有何优点答:IntentService的好处*Acitivity的进程,当处理Intent的时候,会产生一个对应的Service*Android的进程处理器现在会尽可能的不kill掉你*非常容易使用
37.显式意图和隐式意图的区别显式意图:必须指定要激活的组件的完整包名和类名(应用程序之间耦合在一起)//一般激活自己应用的组件的时候采用显示意图隐式意图:只需要指定要动作和数据就可以(好处应用程序之间没有耦合)//激活别人写的应用隐式意图,不需要关心对方的包名和类名
38.引入任务栈目的:为了记录用户开启了那些activity,记录这些activity开启的先后顺序,帮助维护好的用户体验。
39.Android中4大组件是:ContentProvider、Activity、BroadcastReceiver和Service