Android笔试题之NDK与游戏开发简答题及答案

来源:互联网 发布:.net 桥接数据库 编辑:程序博客网 时间:2024/05/09 17:36


  应聘软件开发的工作,一般都会有面试和笔试两个环节,Android开发工程师的的应聘也是如此。今天小编就将为大家整理10道有关NDK与游戏开发的简答题及答案,希望对求职Android工程师的童鞋有所帮助。

 

  1、 Paint类有哪些常用方法?

 

  void  setARGB(int a, int r,int g, int b)  设置Paint对象颜色,参数一为alpha透明通道  

  void  setAlpha(int a)  设置alpha不透明度,范围为0~255 

  void  setAntiAlias(booleanaa)  //是否抗锯齿 

  void  setColor(int color)  //设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义 

  void  setFakeBoldText(booleanfakeBoldText)  //设置伪粗体文本    

  void  setLinearText(booleanlinearText)  //设置线性文本   

  PathEffect setPathEffect(PathEffect effect) //设置路径效果   

  Rasterizer setRasterizer(Rasterizer rasterizer) //设置光栅化     

  Shader  setShader(Shadershader)  //设置阴影  

  void  setTextAlign(Paint.Alignalign)  //设置文本对齐  

  void  setTextScaleX(floatscaleX)  //设置文本缩放倍数,1.0f为原始    

  void  setTextSize(float textSize)  //设置字体大小   

  Typeface  setTypeface(Typefacetypeface)  //设置字体,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。  

  void  setUnderlineText(booleanunderlineText)  //设置下划线

 

 

  2、游戏中对数据保存的方法有哪几种,简单讲解下?

        在Android开发中,常用的对游戏中数据的保存方式主要有以下四种:

   1)SharedPreference  此保存方式试用于简单数据的保存,文如其名属于配置性质的保存,不适合数据比较大的保存方式。

  2)文件存储  (FIleInputStream/FileOutputStream) 此保存方式比较适合游戏的保存和使用,可以保存较大的数据,因为相对于SQLite来说更容易让大家接受,此方式不仅能把数据存储在系统中也能将数据保存到SDcard中。

  3)SQLite  此保存方式比较适合游戏的保存和使用,可以保存较大的数据,并且可以将自己的数据存储到文件系统或者数据库当中,也可以将自己的数据存储到SQLite数据库当中,也能将数据保存到SDcard中;

  4)ContentProvider (不推荐用于游戏保存) 此保存方式不推荐用于游戏保存,因为此方式不仅能存储较大数据,还支持多个程序之间就的数据进行交换。

  

 

  3、SharedPreference储存数据的优缺点?

优点: 简单、方便、适合简单数据的快速保存

 

  缺点:

  1)存数的文件只能在同一包内使用,不能在不同包之间使用! 。            

  2)默认将数据存放在系统路径下/data/data/com.himi/  ,没有找到放SD卡上的方法。            

  总结:其实本保存方式如同它的名字一样是个配置保存,虽然方便,但只适合存储比较简单的数据!

 

 

  4、文件存储数据的优点?

  1)适合游戏存储,能存储较大数据;                     

  2)不仅能存储到系统中,也能存储到SD卡中。

  

  5、View,surfaceView, GLSurfaceView有什么区别?

  view是最基础的,必须在UI主线程内更新画面,速度较慢。

  SurfaceView是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快。

  GLSurfaceView是SurfaceView的子类,opengl 专用的。

 

  6、10个常用linux命令?

  1)cd目录名

  2)vi 文件名

  3)rm [选项] 文件列表

  4)cat [选项]文件列表(如:cat userinfo.xml)

  5)cp[选项] 源文件目标文件

  6)find目录列表匹配标准

  7)grep [选项] 正则表达式文件列表

  8)ls [选项] [文件列表](如:ls)

  9)more [选项] 文件名

  10)who [选项] utmp式的文件

 

  7、dp和 px转换关系?  

  px = dp*(dpi/160)

  QVGA: density=0.75densityDpi=120 QVGA(240*320) (Quarter:1/4)

  HVGA:density=1.0densityDpi=160 HVGA(320*480) (Half:1/2)

  VGA:density=1.0densityDpi=160 VGA(480*640)

 

  WVGA:density = 1.5 densityDpi=240 WVGA(480*800) (Wide)

  WQVGA:density=2.0densityDpi=120 WQVGA(240*400)(Wide Quarter)

  dip值表示每英寸有多少个显示点(像素密度)。当densityDip=160时,1dp=1px。

 

  8、Android SDK 下的常用工具有哪些 ?

  platform-tools目录下常用的工具有:

  aapt、adb、dx、aidl

  tools目录下常用的工具有:

  android、apkbuilder、ddms、draw9patch、emulator、mksdcard、sqlite3

 

  9、产生死锁的条件有哪些?

  1)相互排斥:一个线程或者进程永远占有共享资源,例如,独占该资源。

  2)循环等待:进程A等待进程B,而后者又在等待进程C,而进程C又在等待进程A。

  3)部分分配:资源被部分分配,例如,进程A和B都需要访问一个文件,并且都要用到打印机,进程A获得了文件资源,进程B获得了打印机资源,但是两个进程不能获得全部的资源。

  4)缺少优先权:一个进程访问了某个资源,但是一直不释放该资源,即使该进程处于阻塞状态。

 

  10、如何适配不同分辨率、不同语言环境?

 

  分辨率:

  drawable-hdpi/ldpi/mdpi/xhdpi/xxhdpi/640×360(图片分辨率适配)

  values-sw600dp/v11/640×360(dimen.xml适配尺寸下的资源)

 

  注:-sw[N]dp:要求N小于你的屏幕高度或宽度二者中的最小值。

 

  layout-land/port/hdpi/large/640×360(横竖屏、布局文件分辨率适配)

  语言环境:

  values-en-rUS/-zh-rCN

 

       以上就是Android开发工程师笔试题中比较常见的的有关NDK与游戏开发的简答题,分享给大家,希望对大家笔试有所帮助。最后也祝愿所有的童鞋顺利通过,走上Android开发岗位。

 

0 0
原创粉丝点击