2018正版葡京赌侠诗[ 面试题 ] 常见题

View部分

================================================

  1. ###### Android自定义组件实现思路

帧布局(框架布局)FrameLayout,在斯布局中,所有的子元素统统放于这块区域之左上角,并且后面的子元素直接覆盖在前方的子元素之上,将前方的子元素部分与全遮。
线性布局LinearLayout,最常用之同一种布局模式,所有子控件的针对性齐格局,取决于怎样定义
orientation的属性:vertical 垂直方向
,即便以这种倾向有的分段控件将按垂直的措施分布于布局及,每行只允许暴发一个子元素,horizontal水平方向
,这时子控件将会见因水平的取向分布在布局中。
断布局AbsoluteLayout,又可以叫坐标布局,可以一贯指定子元素的断然地方,这种布局简单直接,直观性强,但是由于手机屏幕尺寸差距相比丰富,使用相对化定位的适应性会相比差。
相对布局RelativeLayout,允许子元素指定它们相对于其父元素或兄弟元素的职务,这是实际上布局中尽常用之布局形式之一。它灵活性大过多,当然属性为大多,操作难度也坏,属性之间来顶牛的之可能性为异常,使用相对布局时如多做来测试。
报表布局TableLayout,表格布局TableLayout以行的情势管理子元素,每一样推行是一个TableRow布局对象,当然为可以是平凡的View对象,TableRow里每放一个因素就是如出一辙列,总列数由列数最多之那一行决定。
网格布局 GridLayout,在Android
4.0着,新引入的GridLayout网格布局,GridLayout布局使用虚细线将布局划分也举行,列和单元格,也襄助一个控件在履行,列上都起纵横排列。而GridLayout使用的实际是同LinearLayout类似的API,只不过是改了转连锁的价签而已,所以对开发者来说,领会GridLayout仍旧充裕轻之政工。

  • ###### UI中padding和margin的区别

Padding 用来指定组件内的情去组件边界的离;
Margin用来指定控件与控件之间的偏离

  • ###### 哪个组件可以兑现手风琴效果,用来落实设置界面的类似,实现抽屉效果, 悬浮窗口?

报经:实现手风琴效果(ExpandableListView)
安装界面的近乎(preferenceActivity)保存至sharedpreference中
抽屉效果(slidingDrawer)组件
泛窗口: PopWindow,可以兑现类似Dialog和菜单的法力

  • ###### gravity与layout_gravity的区别

Gravity用来指定组件内的内容相对于组件本身的地方
Layout_gravity用来指定组件相对于该大组件的岗位

  • ###### 怎样自定义一个Adapter

接轨自BaseAdapter实现中的计,listView在最先绘制的时节,系统第一调用getCount()函数,依照他的归来值得到listView的长短,然后因是长度,调用getView()逐一绘制每一行。假设您的getCount()再次来到值是0的话语,列表将无亮同一return
1,就单单显示一行。系统来得列表时,首先实例化一个适配器(这里以实例化自定义的适配器)。当手动完成适配时,必
须手动映射数据,这得重写getView()方法。系统在绘制列表的各国一行的时刻用调用此模式。getView()有五只参数,position表示以呈现的凡第几实施,covertView是自从布局文件中inflate来的
布局。大家所以LayoutInflater的措施以概念好之main.xml文件提取变成View实例用来呈现。然后
将xml文件被的相继零部件实例化(简单的findViewById()方法)。这样即使可以以数据对应到各种零部件上了。但是按钮为了响应点击事件,需要为其上加点击监听器,这样虽可知捕获点击事件。至此一个自定
义的listView就好了,现在让大家回过头从新审视这些过程。系统设绘制ListView了,他先是得
要绘制的此列表的长度,然后起始绘制第一行,怎么绘制呢?调用getView()函数。在这些函数里面
首先得一个View(实际上是一个ViewGroup),然后再实例并安装各类零部件,显示的。好了,绘制了这同一实施了。这再绘制下一行,直到绘完截至。在实质上的运转过程中汇合意识listView的各级一行没有典型了,这是坐Button抢夺了listView的刀口,只要布局文件中校Button设置也没有问题就是OK了

  • ###### ViewFlipper和ViewPager的区别

1.ViewFilpper类继承给ViewAnimator类。而ViewAnimator类继承给FrameLayout。
翻ViewAnimator类的源码可以看来此类的意即便为其中的View切换提供动画效果。该类有如下几独和动画相关的法子。
2.ViewPager用于贯彻多页面的切换效果,该类存在于Google的兼容包里面,所以当援时记得在BuilldPath中出席“android-support-v4.jar”

  • ###### View更新页面的五种植格局

Activity.runOnUiThread(Runnable)
View.post(Runnable)
View.postDelayed(Runnable,long);
View.postInvalidate();
View.Invalidate();
在用刷新的地方调用handle的sendMessage来发送音讯,然后在handle的getMessage里执行
invaliate 或 postinvaliate

  • ###### 咋样遵照权重实现布局

//权重和父容器orientation有关
horizontal 指水平方向权重 android:layout_width
vertical 指垂直方向权重 android:layout_height
Layout_weight是线性布局,也就是LinearLayout里面所以到之
在layout_width设置为fill_parent的时候,layout_weight代表的是您的控件要事先尽可能的老大,但尽量大是有限度的,即fill_parent.
在layout_width设置为wrap_content的时候,layout_weight代表的是您的控件要先行尽可能的有点,但此小是发出度的,即wrap_content.

  • ###### 咋样兑现ViewPager

先行以布局文件被调用v4包下的ViewPager,在java代码中起始化ViewPager,并设置adapter(继承PagerAdapter),再安装监听onPageChangeListener

  • ###### SurfaceView实现的原理

SurfaceView,它装有独立的绘图表面,即其不跟这宿主窗口共享同一个制图表面。由于拥有独立的绘图表面,因而SurfaceView的UI就足以在一个单身的线程中开展行绘制。又由匪占用主线程资源,SurfaceView一方面可以实现复杂而敏捷之UI,另一方面还要休会师导致用户输入得不交当时响应

  • ###### PathImage是什么

.9.PNG是安卓开发中的一样种植卓殊之图,这种格式的图通过ADT自带的编撰工具转,使用九宫格切分的艺术,使图片帮助在android
环境下的起适应显示。

即使异步下充斥图片的时把图纸添加到scrollview中,
卿待几排列就在scrollview中放置几单linearlayout,在scrollview滑动的底时节动态的测量linearlayout随机生成linearlayout的中度

音视频

================================================

  1. ###### 简述音乐广播的格局与分?

2018正版葡京赌侠诗,1):MediaPlayer:首要用来广播音频,可以播放视频,但是一般不用这举办视频播放。
2):SoundPool:
紧要用于广播一些浅的音响有些,紧要优势是cpu资源占有量低,反应延迟小。

  • ###### 播放录像的落实模式

1)使用系统自带的播放器来播放,指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。
//调用系统自带的播放器
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, “video/mp4”);
startActivity(intent);
2)使用VideoView组件来播放, 可以组合MediaController来实现播控,
只是不可知随便变动视频的大大小小以及职务。
3)使用MediaPlayer和SurfaceView来兑现,这种办法分外灵敏,可以从定义录像播放的轻重以及职务。

其他

================================================

  1. ###### 工作遭到争利用线程池的?

Java通过Executors提供四栽线程池,分别吗:
1)newCachedThreadPool创设一个不过缓存线程池,倘若线程池长度逾处理需,可灵活回收空闲线程,若无可回收,则新建线程。
2)newFixedThreadPool
创制一个定长线程池,可决定线程最深并发数,超出的线程会当队中伺机。
3)newScheduledThreadPool
创建一个定长线程池,协理定时及周期性任务尽。
4)newSingleThreadExecutor
创设一个单线程化的线程池,它只有碰面为此唯一的干活线程来推行任务,保证拥有任务按指定顺序(FIFO,
LIFO, 优先级)执行。

1.throw虽然是依靠抛出的一个具体的慌类型。
2.常见以一个法(类)的表明处通过throws注脚方法(类)可能丢掉来的相当信息,而以方(类)内部通过throw阐明一个具体的老大音信。
3.throws家常并非展现的破获相当,可由于网活动将富有捕获的好新闻委给上司方法;
throw则需要用户自己捕获相关的怪,而后在对该展开有关包装,最后当用包裹后底坏消息抛出。
假如在法吃汇合起良被扔来要若而无期待以斯艺术体内对之很举行处理,可以动用throws在阐明方法的时节还要讲明他或会晤飞来之不得了。
4.两者地方不同.

  • ###### 如何以SQLite数据库(dictionary.db文件)与apk文件共公布?

解答:可以以dictionary.db文件复制到Eclipse Android工程中之res
aw目录中。所有在res
aw目录中之公文不会见吃核减,这样可一向领取该目录中之公文。可以以dictionary.db文件复制到res
aw目录中

  • ###### 通过Intent传递一些二进制数据的办法来什么?

A.以Serializable接口实现连串化,这是java常用之方
B.实现Parcelable接口,这里Andriod的一对分类比如Bitmap类就既落实了,同时Parcelable在Android
AIDL中互换数据吧颇广泛

  • ###### 怎么着拿一个字符串转换成URI?

uri uri=uri.parse("content://com.changcheng.provider.contactprovider/contact")

  • ###### SIM卡的EF文件来哪个地方打算?

    SIM卡的文件系统有好的正规化,紧假设为与手机通讯,SIM本身可以出温馨的操作系

  • ###### Android中项目升级注意的题目

于清单文件之中的android:versionCode和android:versionName有本文件,
客户端同时储存该用即本号 (SharedPreferences/Sqlite),
每便打开应用,去检测服务器版本号与本地版本号是否一致,假若不一
致,则从定义对话框指示是否下载更新

  • ###### 如何促成音信推送,有安方法,各自优缺点,最常使用啊种?

答:实现音讯推送的格局来五种植,分别是轮询,SMS,C2DM,MQTT,XMPP最常使用的凡XMPP,
大家做项目时用的是XMPP协议
1.XMPP协议,它是同种基于XML的传递协议,具有很强之灵活性与而扩充性。它的风味是拿复杂从客户端转移至了服务器端。GTalk、QQ、IM等还为此此协议。
2.轮询:客户端定时失去服务端取或者保持一个充分Socket,从精神讲这不让推送,
而是去服务端拽数据。不过实现简单,紧要缺点:耗电,浪费用户流量当
3.Google的C2DM,具体不细致说,缺点,服务器在海外,不是很平稳。
4.通过短信模式, 可是颇麻烦找到免费短信平台
5.MQTT协议, IBM提供的平等种推送服务,不太灵敏

  • ###### 咋样决定耗电量

【在偏下境况下耗电相比较多:】
1、 大数据量的传输。
2、 不停歇的于网络里切换。
3、 解析大量底公文数据。
【控制耗电量:】
1、
在得网络连接的程序中,首先检查网络连接是否健康,虽然没有网络连接,那么即使非需实践相应的次。
2、 使用频率高的数量格式和分析方法。(fastJson,LoganSquare-master)
3、使用GZIP压缩形式下载数据,能减弱网络流量
4、 另外一些优化措施:A. 回收java对象,特别是相比较生之java对诸如;
B.对稳定要求不是最为强之说话尽量不要使GPS定位,可能拔取wifi和活动网cell定位即可,GPS定位消耗的电量远远抢先运动网稳定;
C.尽量不要使用浮点运算;
D.获取屏幕尺寸等信息方可接纳缓存技术,不需要举办多次呼吁。

  • ###### Gps定位以及网络稳定的别

GPS定位要安装权限android.permission.ACCESS_LOCATION_FINE
网稳定要安装权限android.permission.ACCESS_LOCATION_COARSE
便GPS定位于网络稳定在精确度方面还精准,但以进度方面略差有,而且GPS定位相符在室外环境下利用,网络稳定于室内,室外都足以。

  • ###### 安卓底网架构

详细链接
应用层:使用Java语言举办开发的有些应用程序
以框架层:首假如谷歌揭橥的片操作帮助的类库(API框架),开发人士能够选择这些类库方便的举行次支付,但是在出时务必坚守框架的支出条件
系运作库层:当以安卓框架层开展付出时,安卓操作系统会自动使用部分c/c++的库文件来支撑所祭的逐条零部件,使其可以另行好之吗顺序服务;
Linux内核层:安卓操作系统重假使基于Linux内核,程序的安全性,驱动程序,进程管理等都出于Linux内核提供。

  • ###### 安卓上安装了大多单浏览器,能否指定页面访问;

通过直接发送URI把参数带过去,或者经过Manifest里的intentfilter的data属性

  • ###### Android dvm的长河与Linux的长河, 应用程序的过程是否也跟一个定义?

DVM指dalivk的虚拟机。每一个Android应用程序皆以它们好的过程被运行,都抱有一个独门的Dalvik虚拟机实例。而诸一个DVM都是当Linux
中之一个历程,所以说可看是暨一个定义。

  • ###### 依照自己的领悟描述下Android数字签名。

(1)所有的应用程序都须发数字证书,Android系统未会晤装一个没有数字证书的应用程序
(2)Android程序包下的数字证书可以是起签署的,不欲一个贵的数字证书机构签约认证
(3)尽管一旦规范发布一个Android程序,必须采纳一个确切的私钥生成的数字证书来被程序签名,而无法应用adt插件或者ant工具转的调试证书来发表。
(4)数字证书都是发有效期的,Android只是当应用程序安装之上才会检查证的有效期。假如程序已经装于系统中,虽然证书过期也无晤面影响程序的正常化机能。

报:
客户端缓存机制是android应用开发中非凡关键之平等起工作,使用缓存机制不仅可以呢用户节省3G流量,同时在用户体验方面为是好好之精选,比如小情报客户端帮助离线情势,也是由此缓存机制落实之.缓存机制分为两有些,一部分凡仿缓存,另一样有的是大抵媒体文件缓存.
言缓存有三三两两栽实现:
1)可以用同服务器交互得到的json数据如故xml数据存入sd卡中,并以数据库添加该数据的记录.添加数据库记录时,提供个别单关键字段,一个凡要的URL,另一个则是地点保存后的文本地方,每一遍加载数据往日都会晤遵照URL在数据库被搜索
2)将JSON数据解析后装入List<Map>对象吃,然后所有历List,将数据全写副相应的多寡库表结构面临,将来每一回向服务器发起呼吁从前可以事先在数据库被找寻,要是发生一贯归回.
多媒体文件缓存:首要倚重图片缓存
图的缓存可以由此前几日子,时间啊名字缓存到SD卡中的指定图片缓存目录,同时数据库中做相应记录,记录模式能够使用简单单重要字段控制,一个字段是该图形的URL地址,另一个字段是拖欠图片的本机地址.取图片时按照URL在数额中搜索,倘诺没有则总是服务器下载,下载后再度服务器碰着作出相应记录
缓存文件去策略:
1.各国一个模块于历次客户端自动或用户手动更新的时刻去相应模块的缓存文件,并再生充斥新的缓存文件.
2.在安装界面被提供删除缓存的力量,点击后去本机所有缓存.

  • ###### Ddms和Traceview的区别

DDMS是一个程序执行查看器,在中间可以瞥见线程和仓库等音信,TraceView是程序性能分析器

  • ###### 程序中的亲和性的通晓

1.默伏情状下一个动的富有Activity都是具相同之affinity,都是从application中继承,application的affinity默认就是manifest的包名。
2.affinity针对性Activity来说,就如是身份证相同,可以告诉所在的Task,自己属于中间的均等各项。
3.运用场地:
a:按照affinity重新为Activity采取适当的宿主Task;
b:与allowTaskReparenting属性配合;
c:启动Activity使用Intent设置了FLAG_ACTIVITY_NEW_TASK标记。

API(Application Programming
Interface,应用程序编程接口)是一些先定义的函数,目标是提供应用程序与开发人士基于某软件或硬件的坐访同组例程的力量,而还要任需访问源码,或明其中工作体制的仔细节.
简单的话,就是同一效仿只是供应调用的系统接口.

  • ###### Android项目之目结构

1)src目录:src(即SourceCode),src目录用来存放应用程序中颇具的源代码,代码的源文件一般存放于该目录下的对应的包下。
2)gen目录:gen目录,该目录下一般就出一个文件,即R文件。该文件夹下边有只R.java文件,R.java是于建立项目时自动生成的,定义该类型所有资源的目。
3)Android4.1目:该文件夹下富含android.jar文件,这是一个Java归档文件,其中涵盖构建应用程序所需要的有所的AndroidSDK库(如Views、Controls)和APIs。
通过android.jar将协调的应用程序绑定到AndroidSDK和AndroidEmulator,这允许而接纳具有Android的库和包,且假设你的应用程序在方便的条件受到调剂。
4)assets目录:该目录存放应用程序中接纳的表资源文件,如声音录像等,在Android程序中可通过输入/输出流对拖欠目录中的文本举行读写。
5)res目录:该目录用来存放程序这所以到的图片、界面布局文件与XML格式的叙说文件。该目录下有多少个目录。新建一Android项目,在res目录下一般会发出drawable,layout,valuse三只目录。drawable用来存放在图片资源,目录下一般会生三独目录分别寄存高中低两种植不同分辨率的图,layout目录用来存放在应用程序的界面布局文件,values目录下存放字符串资源,颜色资源,数组资源十分XML文件。
6)AndroidManifest.xml

  • ###### Manifest中放大什么东西

AndroidManifest.xml是每个android程序中要的公文。它位于整个项目标根目录,描述了package中展露的零件(activities,services,等等),他们分其余贯彻类似,各类力所能及吃处理的数量和启动地点。除了会声称程序中之Activities,ContentProviders,瑟维斯(Service)s,和IntentReceivers,仍可以指定permissions和instrumentation(安全控制和测试),四良组件,意图,权限,第三正在key,版本号等

  • ###### Application类的用意

Application和Actovotu,Service(Service)一样是android框架的一个系统组件,当android程序启动时系统会成立一个
application对象,用来囤积系统的局部消息。平日我们是不需要指定一个Application的,这时系统会活动帮咱成立,如果急需创建自己
的Application,也杀简单创建一个类似继承
Application并在manifest的application标签中展开挂号(只待为Application标签增添个name属性把自己的
Application的名定入即可)。
android系统会为每个程序运行时创建一个Application类的目的还唯有创造一个,所以Application可以说凡是单例
(singleton)情势之一个类.且application对象的生命周期是浑程序中最充足之,它的生命周期就相当于是次的生命周期。因为其是大局
的单例的,所以于不同的Activity,瑟维斯(Service)中赢得的靶子都是跟一个对象。所以经过Application来拓展局部,数据传递,数据共享
等,数据缓存等操作。

  • ###### Activity中 this、getApplicationContext和getActivity的区别

this:代表时,在Activity当中就是意味着时的Activity,换句话说就是是Activity.this在Activity当中可以缩写为this.
getActivity()指的是以fragment当中调用拿到他到处的Activity
getApplicationContext():生命周期是整应用,应用摧毁,它才摧毁。

  • ###### asset和res的区别

报:res/raw和assets的相同点:
两岸目录下之公文于包后会面原本封不动的保存在apk包中,不碰面叫编译成二进制。
res/raw和assets的不同点:
1)res/raw中之文书会给射到R.java文件被,访问的时段向来下资源ID即
R.raw.filename;assets文件夹下的文件不碰面叫射到R.java中,访问的时刻用AssetManager类。
2)res/raw不得以来目录结构,而assets则好出目录结构,也就是assets目录下得以重复立文件夹
3)读取文件资源举例:
诵读取res/raw下之公文资源,通过以下方法取得输入流来开展勾勒操作
InputStream is = getResources().openRawResource(R.raw.filename);
读取assets下的公文资源,通过以下格局赢得输入流来进展勾勒操作

AssetManager am = null; 
am = getAssets(); 
InputStream is = am.open("filename");
  • ###### webservice的UDDI是什么

UDDI 是千篇一律种目录服务,集团可以以它对 Web services
举行登记和摸索。UDDI,英文为 “Universal Description, Discovery and
Integration”,可翻译为“通用描述、发现跟集成服务”。

  • ###### 程序运行的权能和文件系统权限的分别

运转时权 Dalvik( android 授权) 文件系统 linux 内核授权

  • ###### 对android系统的亮

5大优势:
一、 开放性
次、 挣脱运营商的羁绊
其三、 充足的硬件采纳
季、 不为任何限制的开发商
五、 无缝结合的Google应用
Android的5大不足
一如既往、 安全及隐私
其次、 首先开卖Android手机的未是最好深运营商
老三、 运营商还可以影响至Android手机
季、 同类机型用户缩小
五、 过分依赖开发商少标准配置

  • ###### 手机上使用的传感器来什么

define SENSOR_TYPE_ACCELEROMETER 1 //加速度
define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力
define SENSOR_TYPE_ORIENTATION 3 //方向
define SENSOR_TYPE_GYROSCOPE 4 //陀螺仪
define SENSOR_TYPE_LIGHT 5 //光线感应
define SENSOR_TYPE_PRESSURE 6 //压力
define SENSOR_TYPE_TEMPERATURE 7 //温度
define SENSOR_TYPE_PROXIMITY 8 //接近
define SENSOR_TYPE_GRAVITY 9 //重力
define SENSOR_TYPE_LINEAR_ACCELERATION 10//线性加速度
define SENSOR_TYPE_ROTATION_VECTOR 11//旋转矢量

================================================
【ListView相关解析和面试题】
【关于Android四深组件的互相关面试题】
【自定义View全解】
【View事件分发】
【自动登录的贯彻】
再也多内容请关注
自我的专题
转载请阐明
原文链接:
http://www.jianshu.com/users/c1b4a5542220/latest\_articles

发表评论

电子邮件地址不会被公开。 必填项已用*标注