![t014ccdb2f015c81abf.jpg](http://studygolang.qiniudn.com/151014/079d7f84e8486fc65042fe01cccb9436.jpg)
应聘软件开发的工作,一般都会有面试和笔试两个环节,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(boolean aa) //是否抗锯齿
void setColor(int color) //设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义
void setFakeBoldText(boolean fakeBoldText) //设置伪粗体文本
void setLinearText(boolean linearText) //设置线性文本
PathEffect setPathEffect(PathEffect effect) //设置路径效果
Rasterizer setRasterizer(Rasterizer rasterizer) //设置光栅化
Shader setShader(Shader shader) //设置阴影
void setTextAlign(Paint.Align align) //设置文本对齐
void setTextScaleX(float scaleX) //设置文本缩放倍数,1.0f为原始
void setTextSize(float textSize) //设置字体大小
Typeface setTypeface(Typeface typeface) //设置字体,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。
void setUnderlineText(boolean underlineText) //设置下划线
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.75 densityDpi=120 QVGA(240*320) (Quarter:1/4)
HVGA:density=1.0 densityDpi=160 HVGA(320*480) (Half:1/2)
VGA:density=1.0 densityDpi=160 VGA(480*640)
WVGA:density = 1.5 densityDpi=240 WVGA(480*800) (Wide)
WQVGA:density=2.0 densityDpi=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开发岗位。
相关文章:《安卓源码如何在eclipse中显示?》http://www.maiziedu.com/group/article/5609/
有疑问加站长微信联系(非本文作者)