网上捡的腾讯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是一个线程,访问网络、内存、磁盘三种方式。