android一些面试题目
1.ListView怎么提高滑动效率
2.说下你做过项目的包的构架,(联网,解析,activity,database) 重点
3.载入大量图片怎么做(包含小图和查看大图) 怎么降低一次跟server的链接数,怎么做缓存,
4.onInterceptTouchEvent(),onTouchEvent()的关系
5.怎么在oncreate中大致计算一个view的高度(调一下view的measure,然后再getHeight即可了)
6.MessageQueue,Looper,handler的关系(重点)
7.android的widget统计,就是统计从widget中启动的次数
8.大量数组怎么找出前5个最大的数(nlog5的复杂度,用一个5个元素的堆排序)
9.final ,finalize,finally差别
10.怎么写一个线程池(重点)当里面的线程池数满了,外面又来线程怎么办(用缓冲池),还有这个线程池怎么工作的,同步原理
11.线程的yield,sleep(不释放锁),wait(释放锁,对象级别的)
12.静态变量和动态变量 在java中的存储有啥区别
13.java 深拷贝(重点)
14.android task的形式(singletask,singtop之类的,要弄清楚他们的表现形式)
15.listView下拉刷新怎么实现的
16.Gallery的onFling()的实现原理,重写Gallery后onCount()的东西
17.android的service的启动和销毁(重点)
18.java有几种方式实现多线程
19.怎么实现数据库的索引(B-树)
20.java中的软引用,虚引用之类的表现形式)
21.java中的垃圾回收 假设让你实现一个,怎么实现(百度面的时候问的)
22.怎么自己定义一个View onMeasure,onLayout,这些的调用次序
23.怎么自己定义属性 (要写出来)
24.android的进程间通信
25.BitmapFactory.decode() sdcard中的一个图片 在不同分辨率下的getWidth()和getHeight()有什么区别
26.让你当场写一个联网(给你url,用httpGet写)
27.cmwap,cmnet,ctwap,ctnet的差别
28.android scrollview怎么实现左右滑动 (有个scroller的属性,能够scroller.startScroll)
29.android怎么实现左右滑动大图)
30.activity的生命周期(重点)
31android支持几种动画,还有各种动画的表现形式)(种是Tween动画、另一种是Frame动画。Tween动画,这样的实现方式能够使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。 )
32 gni怎么写的
33.android 怎么进行传值的,尤其是对象
34怎么让activity像对话框一样弹出来
35.怎么写一个contentProvider
进程间通信的答案:
IDL的全称是什么?怎样工作?能处理哪些类型的数据?
AIDL的英文全称是Android Interface Define Language
当A进程要去调用B进程中的service时,并实现通信,我们通常都是通过AIDL来操作的
Aproject:
首先我们在net.blogjava.mobile.aidlservice包中创建一个RemoteService.aidl文件,在里面我们自己定义一个接口,含有方法get。ADT插件会在gen文件夹下自己主动生成一个RemoteService.java文件,该类中含有一个名为RemoteService.stub的内部类,该内部类中含有aidl文件接口的get方法。
说明一:aidl文件的位置不固定,能够随意
然后定义自己的MyService类,在MyService类中自己定义一个内部类去继承RemoteService.stub这个内部类,实现get方法。在onBind方法中返回这个内部类的对象,系统会自己主动将这个对象封装成IBinder对象,传递给他的调用者。
其次须要在AndroidManifest.xml文件里配置MyService类,代码例如以下:
<!-- 注冊服务 -->
<service android:name=".MyService">
<intent-filter>
<!-- 指定调用AIDL服务的ID -->
<action android:name="net.blogjava.mobile.aidlservice.RemoteService" />
</intent-filter>
</service>
为什么要指定调用AIDL服务的ID,就是要告诉外界MyService这个类可以被别的进程訪问,仅仅要别的进程知道这个ID,正是有了这个ID,Bproject才干找到Aproject实现通信。
说明:AIDL并不须要权限
Bproject:
首先我们要将Aproject中生成的RemoteService.java文件复制到Bproject中,在bindService方法中绑定aidl服务
绑定AIDL服务就是将RemoteService的ID作为intent的action參数。
说明:假设我们单独将RemoteService.aidl文件放在一个包里,那个在我们将gen文件夹下的该包复制到Bproject中。假设我们将RemoteService.aidl文件和我们的其它类存放在一起,那么我们在Bproject中就要建立对应的包,以保证RmoteService.java文件的报名正确,我们不能改动RemoteService.java文件
bindService(new Inten("net.blogjava.mobile.aidlservice.RemoteService"), serviceConnection, Context.BIND_AUTO_CREATE);
ServiceConnection的onServiceConnected(ComponentName name, IBinder service)方法中的service參数就是Aproject中MyService类中继承了RemoteService.stub类的内部类的对象。
Android应用程序结构是:
Linux Kernel(Linux内核)、Libraries(系统执行库或者是c/c++核心库)、Application
Framework(开发框架包)、Applications (核心应用程序)
在android中,请简述jni的调用过程。(8分)
1)安装和下载Cygwin,下载 Android NDK
2)在ndk项目中JNI接口的设计
3)使用C/C++实现本地方法
4)JNI生成动态链接库.so文件
5)将动态链接库拷贝到javaproject,在javaproject中调用,执行javaproject就可以
自己定义属性的答案:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="myView">
<attr name="textColor" format="color"/>
<attr name="textSize" format="dimension"/>
</declare-styleable>
</resources>
package cn.com.flyfot.attrs;
public MyView(Context context, AttributeSet attr) {
super(context, attr);
mPaint = new Paint();
//获取自己定义属性
TypedArray a = context.obtainStyledAttributes(attr, R.styleable.myView);
//获取尺寸属性值,默认大小为:30
float textSize = a.getDimension(R.styleable.myView_textSize, 30);
//获取颜色属性值,默认颜色为:0x990000FF
int textColor = a.getColor(R.styleable.myView_textColor, 0x990000FF);
//设置画笔的尺寸和颜色
mPaint.setTextSize(textSize);
mPaint.setColor(textColor);
//缓存属性,能够不设置,主要是为了提高效率
a.recycle();
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:flyfot="http://schemas.android.com/apk/res/cn.com.flyfot.attrs"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 设置属性 -->
<cn.com.flyfot.attrs.MyView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
flyfot:textSize="120px"
flyfot:textColor="#ABCDEFEF"
/>
<!--
注意引入命名空间:xmlns:flyfot="http://schemas.android.com/apk/res/cn.com.flyfot.attrs"
-->
</LinearLayout>
android一些面试题目的更多相关文章
- Android常见面试题目
1.Activity 的生命周期 转自:http://kb.cnblogs.com/page/70125/ 多谢楼主分享 首先看一下Android api中所提供的Activity生命周期图(不明白的 ...
- Android面试题目及其答案
转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...
- Android常见面试笔试题目
Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...
- Android开发面试经——4.常见Android进阶笔试题(更新中...)
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- 全网最全C#实习面试题目
整个内容是我在春招面试时候整理的一些题目,里面涵盖有网上搬运的(由于当时没有记录来源,如果有转载没标注来源,请与我联系),还有我面试到的.整个排版很乱,后期我会一步一步整理.整个内容大概快有两万字.整 ...
- HTML/CS3相关面试题目
一.HTML/CS3基本面试题目. 1. 常用那几种浏览器测试? 1.1浏览器:IE,Chrome(谷歌),FireFox(火狐),Safari(苹果计算机的最新操作系统Mac OS X中的浏览器,使 ...
- PHP面试题目搜集
搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...
- 总结CSS面试题目的考察点及常见布局问题整理
整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...
- 【转】asp.net c# 网上搜集面试题目大全(附答案)
asp.net c# 网上搜集面试题目大全(附答案) http://www.cnblogs.com/hndy/articles/2234188.html
随机推荐
- Delphi事件的广播 good
明天就是五一节了,辛苦了好几个月,借此机会应该尽情放松一番.可是想到Blog好久没有写文章,似乎缺些什么似的.这几个月来在项目中又增长了许多经验,学到许多实际应用的知识.不如把一些比较有用的记录下来, ...
- [Java][Android][Process] ProcessBuilder与Runtime差别
在Android中想要进行Ping,在不Root机器的情况下似乎还仅仅能进行底层命调用才干实现. 由于在Java中要进行ICMP包发送须要Root权限. 于是仅仅能通过创建进程来攻克了.创建进程在Ja ...
- uu云验证码识别平台,验证码,验证码识别,全自动验证码识别技术,优优云全自动打码,代答题系统,优优云远程打码平台,uu云打码
uu云验证码识别平台,验证码,验证码识别,全自动验证码识别技术,优优云全自动打码,代答题系统,优优云远程打码平台,uu云打码 优优云验证码识别答题平台介绍 优优云|UU云(中国公司)是全球唯一领先的智 ...
- linux下用tar命令将当前目录下文件按子目录压缩归档
作者:iamlaosong 日常工作中,我们常常需要用tar命令将历史文件压缩归档,再删除源文件,以便节省空间.如果压缩归档成一个文件,就比较简单,用一条命令即可,如命令:tar -czf bak20 ...
- ubuntu 64位下安装wps
首先,去官网下载wps.地址:http://community.wps.cn/download/ 然后切换到下载文件夹.运行例如以下命令: $ sudo apt-get install ia32-li ...
- 设备管理 USB ID
发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVVAxOT ...
- 字典实体类:DictionaryEntry类
DictionaryEntry类是一个字典集合,主要包括的内容是键/值对.这样的组合方式能够方便地定位数据,当中的"键"具备唯一性,类似于数据库中的"id",一 ...
- Android中怎样在应用A中启动或安装应用B
看到别人做的游戏攻略,想着自己的游戏攻略也加入新的功能,即Android中怎样在应用A中启动或安装应用B.就查了一些资料整理下来. 启动或安装对应的应用的方法: Step1:推断是否安装目标应用.仅仅 ...
- CentOS 7 命令备忘录
1 查看目录下有什么文件/目录 >ls //list 列出目录文件信息 >ls -l 或ll //以“详细信息”查看目录文件 >ls -a //-all 查看目录“全部”(包含隐藏文 ...