android一些面试题目

1.ListView怎么提高滑动效率

2.说下你做过项目的包的构架,(联网,解析,activity,database) 重点

3.加载大量图片怎么做(包括小图和查看大图) 怎么减少一次跟服务器的链接数,怎么做缓存,

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来操作的

A工程:

首先我们在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,B工程才能找到A工程实现通信。

说明:AIDL并不需要权限

B工程:

首先我们要将A工程中生成的RemoteService.java文件拷贝到B工程中,在bindService方法中绑定aidl服务

绑定AIDL服务就是将RemoteService的ID作为intent的action参数。

说明:如果我们单独将RemoteService.aidl文件放在一个包里,那个在我们将gen目录下的该包拷贝到B工程中。如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包,以保证RmoteService.java文件的报名正确,我们不能修改RemoteService.java文件

bindService(new Inten("net.blogjava.mobile.aidlservice.RemoteService"), serviceConnection, Context.BIND_AUTO_CREATE);

ServiceConnection的onServiceConnected(ComponentName name, IBinder service)方法中的service参数就是A工程中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)将动态链接库复制到java工程,在java工程中调用,运行java工程即可

自定义属性的答案:

<?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一些面试题目

时间: 2024-08-22 12:49:49

android一些面试题目的相关文章

2019最新Android中级面试题目汇总解答

注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解. Android进阶延伸点 1.如何进行单元测试,如何保证App稳定 ? 参考回答: 要测试Android应用程序,通常会创建以下类型自动单元测试 本地测试:只在本地机器JVM上运行,以最小化执行时间,这种单元测试不依赖于Android框架,或者即使有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离Android依赖的目的,模拟框架如Goog

Android常见面试题目

1.Activity 的生命周期 转自:http://kb.cnblogs.com/page/70125/ 多谢楼主分享 首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的): Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码: view plaincopy to clipboardprint?public class Activity extends Applic

【Android进阶】Android面试题目整理与讲解

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他

【Android进阶】Android面试题目整理与讲解(二)

今天真机调试的时候莫名其妙遇到了这样的一个问题: This product type must be built using a provisioning profile, however no provisioning profile matching both the identity "iPhone Developer" and the bundle identifier..... 具体如下图所示: 十分蛋疼, 发现不管是从网上下的demo, 还是自己的过程.凡事真机测试的时候都

android面试题目

最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完<andorid从零开始教程>+面试题目全理解,年薪20w以上绝对没问题. 特别献上整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 多个不同布局,可

【Android进阶】Android面试题目整理与讲解(一)

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他

Android面试题目整理与讲解(二)

1.Dalvik和标准Java虚拟机之间的主要差别? Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈. Dalvik和Java之间的另外一大区别就是运行环境--Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行. (1)虚拟机很小,使用的空间也小: (2)Dalvik没有JIT编译器: (3)常量池已被修改为只使用32位的索引,以简化解释器: (4)它使用自己的字

Linux驱动经典面试题目

1.  linux驱动分类 2.  信号量与自旋锁 3.  platform总线设备及总线设备如何编写 4.  kmalloc和vmalloc的区别 5.  module_init的级别 6.  添加驱动 7.  IIC原理,总线框架,设备编写方法,i2c_msg 8.  kernel panic 9.  USB总线,USB传输种类,urb等 10.android boot 流程 11.android init解析init.rcLinux驱动经典面试题目,布布扣,bubuko.com

Android开发面试经——4.常见Android进阶笔试题(更新中...)

Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams/a