Android学习31

这篇博客主要涵盖Android开发的选择题,包括Activity生命周期、类修饰符、Java标识符等方面的问题,以及算法题,如Singleton模式实现和3x3矩阵对角线元素求和。同时,还涉及Android系统架构、Activity生命周期、常用布局、数据存储方式等问答题目,旨在帮助读者深入理解Android开发基础知识。

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

一、 选择题

1、 Activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行onPause() BonCreate() ConResume() DonStart()

2下面的是关于类及其修饰符的一些描述,不正确的是()?

AAbstract类只能用来派生子类,不能用来创建abstract类的对象

Babstract不能与final同时修饰一个类

Cfinal类不但可以用来派生子类,也可以用来创建final类的对象

Dabstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法

3、下列属于合法的java标示符是?

A_cat B5books C+static D-3.14159

4、设x=1y=2z=3,则表达式y+=z--/++x的值是?

A3 B3.5 C4 D5

5、应用程序的main方法中有以下语句,则输出的结果是?

String s=”12345#aaa#bbb#67890”;

Int n=s.indexOf(“#”);

Int k=s.indexOf(“#”,n+1);

Int m=s.indexOf(“#”,k+1);

String s2=s.substring(m+1);

System.out.println(s2);

A123456 B67890 Caaa Dbbb

6、构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?

AArrayList myList = new Object();

BList myList = new ArrayList();

CArrayList myList = new List();

DList myList = new List();

7、以下代码中intent.setClass(ActivityTest.this,NextActivity.class)中的this是指?

Public class ActivityTest extends Activity{

Private Button button1;

Public void onCreate(Bundle saveInstanceState){

Super.onCreate(saveInstanceState);

setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1);

button1.setOnClickListener(new OnClickListener(){

public void onClick(View v){

Intent intent = new Intent();

Intent.setClass(ActivityTest.this,NextActivity.class);

startActivity(intent);

}

});

}

}

AActivityTest BNextActivity COnClickListener DActivity

8、下列代码的执行结果是?C

Int numbers【】 = new int[6];

For(int i=1;i<numbers.length;i++){

Numbers[i]=i-1;

System.out.print(number[i]+””);

}

A0 1 2 3 4 5 B1 2 3 4 5 6

C0 1 2 3 4 D1 2 3 4 5

9下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是?D

10、给定java代码如下,关于super的用法,一下描述正确的是?C

Class C extends B{

Public C(){

Super();

}

}

A、 用来调用类B中定义的super()方法

B、 用来调用类C中定义的super()方法

C、 用来调用类B中的无参构造方法

D、 用来调用类B中的第一个出现的构造方法

二、 算法

1、 写一个Singleton出来。Singleton模式主要作用是保证在java应用程序中,一个类class只有一个实例存在。

2、 求一个3*3矩阵对角线元素之和

三、 问答题目

1、 请谈一下Android系统的架构

2、 请描述下Activity的生命周期

3、 谈谈Android中常用的五种布局

4、 谈谈Android数据存储方式

5、 AndroidActivityIntentContent ProviderService各有什么区别

6、 启动Service的两种方法?有什么区别?

7、 Handler机制的原理?

8、 Android中的动画有哪几类,特点和区别是什么?

9、 Pxdip以及sp的区别?

10、 简述AIDL
 

一、 选择题

1AonPause()

2C

3A

4A

5B

6B

7A

8C

9DDVMdalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。

什么是android DVM:DalvikGoogle公司自己设计用于Android平台的Java虚拟机,每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

DalvikJava运行环境的区别  [

1Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。  

2Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。  

3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex

4:dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。  

5:odex是为了在运行过程中进一步提高性能,对dex文件的进一步优化。  

6:所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制  

7:有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。它在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载,预制类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域。)

10C

二、算法题目:

1Singleton

方式一:

public class Singleton {

private static Singleton instance = null;

private Singleton(){}

public static Singleton getInstance(){

synchronized (Singleton.class) {

if(instance == null){          

synchronized (Singleton.class) {               

if(instance == null){

 instance = new Singleton();

}

}

 }}

 return instance;

}

}

方式二:

Public class Singleton{

Private Singleton(){}

Private static class SingletonHolder{

Public static Singleton instance = new Singleton();

}

 

Public static Singleton getInstance(){

Return SingletonHolder.instance;

}

}

 

2、 对角线元素之和

int sum=0;

int [][] matrix={[1,2,3],[4,5,6],[7,8,9]};

for(int i=0;i<3;i++){

for(int j=0;j<3;j++){

if(i==j||i+j==2){

sum+=int[i][j];

}

}

}

三、简答题目

1android系统采用堆层式系统架构,从底层到高层依次为linux核心层、系统运行库层、应用程序框架层、应用程序层。

Linux内核层,可以看做是硬件层和软件系统之间的抽象层,提供安全机制、内存管理、进程管理、网络协议堆栈、和驱动程序等。

系统运行库层,由系统函数库和Android运行时构成。系统库包括图层管理、媒体库、SQLiteOpenGLESateFreeTypeWebKitSGLSSLlibcAndroid运行时包括核心库和Dalvik虚拟机。

应用程序框架层,提供Android平台基本的管理功能和组件重用机制,包括ActivityManagerWindows ManagerContent ProviderPackage ManagerTeleghonyManager等。

应用程序层,Android会同一些列核心应用程序包一起发布,该应用程序包包括email、客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。

 

2、要点:生命周期方法执行顺序及各方法中主要用来完成什么

3、要点:布局种类:LinearLayoutRelativeLayoutFrameLayoutTableLayoutAbsoluteLayout,各布局特点是什么?最常用的为线性、相对,帧布局。可适当扩展:GridLayout抽屉布局布局优化:层次不要过多,少用LinearLayout

4、要点:android平台中的数据存储方式:文件、SQLiteSharedPreferencesContentProvider

5、要点

Activity:是最基本的android应用程序组件。一个用户交互界面对应activity ,通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上, activity Context的子类,每一个Activity都被实现为一个独立的类,并且从Activity基类继承而来。

Intent:描述应用想干什么。最重要的部分是动作和动作对应的数据。

Service:服务,具有一段较长生命周期且没有用户界面的程序。例如媒体播放器,用户在导航到其他屏幕的时候,音乐应该还是继续播放的,媒体播放器就会使用一个StartService()来启动一个服务,保证播放

Content Provider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。

6、要点:Service的两种启动方式及对应的生命周期、和启动源之间的关系。

7、要点:Handler使用的原因,涉及的类及它们的作用

8、要点:

属性动画:

View动画:

9、要点:

px:表示屏幕实际的象素。例如,320*480 的屏幕在横向有320个象素,在纵向有480 个象素。

dp 是与密度无关

sp除了与密度无关外,还与scale 无关

 

10、要点:

1AIDL 全称Android Interface Definition Language(Android 接口描述语言)是一种接口描述语言; 用于生成可以在Android设备上两个进程之间进行进程间通信(IPC)的代码

2、工作原理:编译器可以通过aidl 文件生成一段代码,通过预先定义的接口达到两个进程之间通信目的.AIDL 的IPC 的机制是基于接口的,但它是轻量级的。它使用代理类在客户端和实现层间传递数据.

使用AIDL实现IPC服务的步骤是

1:创建.aidl文件

2makefile文件中加入.aidl文件

3实现接口

4向客户端暴露接口,即发布服务

3、可处理的数据类型:基本数据类型和String, Bundle 类型

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值