网上捡的腾讯android面试题

来源:http://stormzhang.com/android/other/2014/05/03/tencent-interview/

答案是我自己写的

1.如何画出一个印章的图案;

这个没太懂题目,估计要看原题才行。

2.如何实现一个字体的描边与阴影效果;

https://github.com/m5/MagicTextView

思路就是复写textView,用画笔画出各种效果

3.同一个应用程序的不同Activity可以运行在不同的进程中么?如果可以,举例说明;

决定一个Activity是在新的进程中启动还是在原有的进程中启动的因素有两个,一个是看这个Activity的process属性的值,另一个是这个Activity所在的应用程序的uid。

ROM源码中的Setting等程序。

4.Java中的线程同步有哪几种方式,举例说明;

同步方法、同步代码块(需要锁一个对象)、同步一个静态方法(会锁一个类)

5.说说对Handler,Looper,以及HandlerThread的理解;

见以前博客。

6.dp,dip,dpi,px,sp是什么意思以及他们的换算公式?layout-sw600dp,layout-h600dp分别代表什么意思;

dp是像素无关的点。

dip同上

dpi是硬件的像素密度

px是像素

sp是字体大小

dpi/160=px/dp

layout-sw600dp屏幕最小边是600dp的布局文件夹

layout-h600dp屏幕高是600dp的布局文件夹

注意转屏

PS:

计算DPI:

比如1080P的手机,那么就是1080pxX1920px,比如是5寸屏幕,那么勾股定理得出斜边,可以算出dpi。

当然最简单还是adbshellgetprop|greplcd_density。

还有代码获取

7.写出Activity的几中启动方式,并简单说说自己的理解或者使用场景;

standardsingleTopsingleInstancesingleTask

比如launcher的桌面activity,从其他位置退回桌面时,桌面activity所在栈的上面activity被清空。

8.如何设计一个文件的断点续传系统;

单独线程,记录文件总长和下载长度

9.一个关于xml的布局问题,大概意思就是如何让两个TextView在一个RelativeLayout水平居中显示;

中间设个空view,两个textView在其左右

10.设计一个从网络请求数据,图片,并加载到列表的系统,画出客户端架构并简单的分析;

使用okhttp请求网络,获取json,解析图片url,加载到列表的item,可以用fresco。

不用fresco可以自己做,每个imageView是一个线程,访问网络、内存、磁盘三种方式。

相关推荐