Javaandroid笔试题一

 

1.Android DVM(Dalvik VM)的进度和Linux的进度, 应用程序的经过是同一个定义吗?

DVM(Dalvik VM)指dalvik的虚拟机。每一个Android应用程序都在它自己的长河中运行,都拥有一个独自的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个历程,所以说可以认为是同一个定义。运行在友好的DVM进程之中,不一样的app不会相互烦扰,且不会因为一个DVM的夭亡导致所有的app进度都完蛋。

Android
运行条件至关首要指的虚拟机技术——Dalvik。Android中的所有Java程序都是运作在Dalvik
VM上的。Android上的种种程序都有自己的线程,DVM只执行.dex的Dalvik
executable 文件。每个Android应用在底层都对应该一个单独的DVM实例并在其演说下实施。

 

2. Android中DVM与java中的JVM异同点:

DVM:Dalvik
virtual machine 
JVM:Java virtual
machine

分别一: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操作,升高了类的探寻速度。

 

3.sim卡的EF文件有什么意义?

sim卡的EF文件就是Elementary File文件:基本文件。

sim卡的文件系统有谈得来专业,重倘使为着和手机通讯,sim本
身可以有友好的操作系统,EF就是作存储并和手机通信用的。

 

4.DDMS与TraceView的差别?

DDMS是一个程序执行查看器,在里面可以望见线程和仓库等新闻,TraceView是先后品质分析器;

DDMS
可用来  检测内存泄漏;

TraceView
可跟踪代码的施行时间;

5.Android数据存储格局有哪多种?

① 使用SharedPreferences存储数据 

② 文件存储数据

③  SQLite数据库存储数据

④ 使用ContentProvider存储数据

⑤ 网络存储数据 

6.android一条短信息最长占多少
Byte

一条短信是可以输入70个普通话字符(包涵符号)的(英文为160)。一个字符是2个字节(Byte)。一个字节是8位(bit).所以通用的计量是
一条短信能够输入70*2*8=1120 bit;

7、Android系统属于实时操作系统吗?

Android
操作系统用的基础是linux,而linux内核不属于实时操作系统范畴。
所以Android不是实时操作系统。

 

8、Android程序在什么样状态下会时有暴发Force Close?如何防止,能或不能捕获其卓殊?

抛出运行时尤其时就会导致Force close,如空指针,数组越界等等。

什么样幸免:在编写程序的时候,要完结思想缜密,在可能出现很是的地点都作相应的处理,增强程序的健壮性。

破获非凡:可以经过在Logcat中查看代码抛出非凡的岗位,然后到程序相应地方展开更改。

 

9、列举两种常见的RuntimeException

NullPointerException

  • 空指针引用极度
    ClassCastException
  • 体系强制转换万分。
    IllegalArgumentException
  • 传递不合规参数相当。
    ArithmeticException
  • 算术运算至极
    ArrayStoreException
  • 向数组中存放与讲明类型不合作对象更加
    IndexOutOfBoundsException
  • 下标越界很是
    NegativeArraySizeException
  • 开创一个尺寸为负数的数组错误卓殊
    NumberFormatException
  • 数字格式格外
    SecurityException
  • 安然卓殊

    UnsupportedOperationException

    不扶助的操作极度

 10,简述JNI的调用进度?

(1)、编写带有native方法注明的Java类;

(2)、用“javac”命令来编译所编纂的Java类;

(3)、使用“javah”java类的名生成增添名为h的头文件;

(4)、赋值jni.h,jni_md.h文件到CPP工程;

(5)、落成.h头文件中宣称的函数;

(6)、生成dll动态链接库;

(7)、配置dll文件所在目录到环境变量;

(8)、重启eclipse

11、系统上设置了七种浏览器,能或不能指定某浏览器访问指定页面?请表明原委。

在Android程序中大家可以透过发送显式Intent来启动指定的浏览器。

         Intent
intent =newIntent();        

         intent.setAction(“android.intent.action.VIEW”);    

         Uri
content_url =Uri.parse(“http://www.163.com“);   

         intent.setData(content_url);           

         intent.setClassName(“com.android.browser”,”com.android.browser.BrowserActivity”);   

         startActivity(intent);

万一修改以intent.setClassName(“com.android.browser”,”com.android.browser.BrowserActivity”);

中相应的应用程序packagename 和要开动的activity即可启动其余浏览器。

 

相关文章