1. Android中进程与进程、线程与线程之间如何通信?
2. Widgt相对位置的完成在activity的哪个生命周期阶段实现?
3. UI配套的adapter的使用
4. 对多线程的理解和运用,以及多线程之间handle传值
5. 对android虚拟机的理解,包括内存管理机制和垃圾回收机制
6. Framework工作方式及原理
7. Activity是如何生成一个view的,机制是什么?
8. Android本身的一些限制,比如APK包大小的限制,读取大文件时的时间问题
9. Linux跨进程通信的集成方式
10. Activity的生命周期,两个Activity之间跳转时必然会执行的是那几个方法?
11. 不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?
12. Service有哪些启动方法?有什么区别?
13. (音乐播放器)如何加载的音乐信息,如何改善其效率。
14. 电话状态的监听,改变打电话界面(听说我改动的Phone源码就不再问了)。
15. ListView如何提高其效率?
16. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
17. 启动一个Activity有哪几种方法?
18. 怎么让在启动一个Activity是就启动一个service?
19. Android程序与Java程序的区别?并强调了不是虚拟机方面的!
20. Android中Task任务栈的分配。
21. 程序之间的亲和性的理解。
22. 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?
23. 在Android中,怎么节省内存的使用,怎么主动回收内存?
24. Android四大组建,对各种组件的理解。(因为在不同的资料中,有人把Activity、Intent、Service、 ContentProvide看为四大组建,也有人把Activity、Broadcast Receives或Intent Receives、Service、ContentProvide看成四大组建)所以这个话题就牵出来的问题比较多。
25. 对Android的理解。
26. Intent传递数据时,可以传递哪些类型数据?
27. 不同工程中的方法是否可以相互调用?
28. Android中Provide是用来干什么的?
29. 电话的状态有哪之中,怎么判断是来电还是去电?
30. 在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?
31. 音乐播放器如果有大量的音乐文件,如何提高界面展示速度?
32. 音乐播放功能api中播放流程是怎么样的?
33. Activity怎么和service绑定,怎么在activity中启动自己对应的service?
34. Service有几种启动方式,区别是什么?
35. 界面间的跳转用什么实现,跳转时activity的生命周期。
36. 界面间的布局是怎么实现的,控件的排列。
37. 项目中你遇到的最大困难是什么,怎么解决的。
38. 有些项目(我做过的)android中已经有了,而你又自己实现了,为什么自己实现,以及你用的实现方式以及所用知识点,二者相比,哪个更有优点,优点在哪。
39. 你做的一个比较复杂的界面,画出来,每个部分用的什么控件,各个控件中你用到的的属性是什么,写出来。
40. 如果有种功能,他认为你做的显得不够完美,可能会把这个不完美的地方说出来,让你根据这问题给出一个解决方案。
41. Android用的数据库是什么样的?它和sql有什么区别?为什么要用ContentProvide?它和sql的实现上有什么差别?
组件的介绍
开发框架方面包含基本的应用功能开发、数据存储、网络访问这三大块:
一、应用方面
一般而言一个标准的Android程序由如下4部分组成即Activity、Broadcast Intent Receiver、Service、Content Provider:
1. Activity是最频繁、最基本的模块,在Android中,一个Activity就是手机上一屏,相当于一个网页一样,所不同的是,每个Activity运行结束了,有个返回值,类似一个函数一样。Android系统会自动记录从首页到其他页面的所有跳转记录并且自动将以前的Activity压入系统堆栈,用户可以通过编程的方式删除历史堆栈中的Activity Instance。
Activity类中主要是跟界面资源文件关联起来(res/layout目录下的xml资源,也可以不含任何界面资源),内部包含控件的显示设计、界面交互设计、事件的响应设计以及数据处理设计、导航设计等application设计的方方面面。
2. Broadcast Intent Receiver
Intent提供了各种不同Activity进行跳转的机制,譬如如果从A activity跳转到B activity,使用Intent来实现如下:
Intent in = new Intent(A.this, B.class);
startActivity(in);
BroadcastReceiver提供了各种不同的Android应用程序进 行进行进程间通讯的机制,譬如当电话呼叫来临时,可以通过BroadcastReceiver发布广播消息。对于用户而 言,BroadcastReceiver是不透明的,用户无法看到这个事件,BroadcastReceiver通过 NotificationManager来通知用户这些事件发生了,它既可以在资源AndroidManifest.xml中注册,也可以在代码中通过 Context.registerReceiver()进行注册,只要是注册了,当事件来临的时候,即时程序没有启动,系统也在需要的时候会自动启动此应 用程序;另外各应用程序很方便地通过Context.sendBroadcast()将自己的事情广播给其他应用程序;
3. Service,跟Windows当中的Service完全是一个概念,用户可以通过startService(Intent service)启动一个Service,也可通过Context.bindService来绑定一个Service.
4. Content Provider,由于Android应用程序内部的数据都是私有的,Content Provider提供了应用程序之间数据交换的机制,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去,并且隐蔽 了具体的数据存储实现,标准的ContentProvider提供了基本的CRUD(Create,Read,Update,Delete)的接口,并且 实现了权限机制,保护了数据交互的安全性;
一个标准的Android应用程序的工程文件包含如下几大部分:
-> Java源代码部分(包含Activity),都在src目录当中;
-> R.java文件,这个文件是Eclipse自动生成与维护的,开发者不需要修改,提供了Android对的资源全局索引;
-> Android Library,这个是应用运行的Android库;
-> assets目录,这个目录里面主要用与放置多媒体等一些文件;
-> res目录,放置的是资源文件,跟VC中的资源目录基本类似,其中的drawable包含的是图片文件,layout里面包含的是布局文件,values 目录里面主要包含的是字符串(strings.xml)、颜色(colors.xml)以及数组(arrays.xml)资源;
-> AndroidManifest.xml,这个文件异常重要,是整个应用的配置文件,在这个文件中,需要声明所有用到的Activity、Service、Receiver等。
二、数据存储
在Android,可供选择的存储方式包括了SharedPreferences、文件存储、SQLite数据库存储方式、内容提供器方式(Content Provider)以及网络方式 5种,具体如下:
-> SharedPreferences是Android提供的一种配置文件读写方式,默认存在应用的data/<package name>/shared_prefs下面,通过getSharedPreferences(xx, 0);来获取SharedPreferences对象进行读写操作;
-> 通过openFileInput、openFileOutput等系统提供的API来进行数据的读写访问,特别需要注意的是在Android之中应用程序的数据是私有的,这就是说当前应用程序产生的文件其他应用程序无法访问。
-> SQLite数据库存储方式则是通过继承SQLiteOpenHelper类,并且获取此类的应用程序级别的实例来进行数据库操作的,该类中提供了默认的CRUD访问接口,方便了应用程序的数据存储操作;
-> 内容提供器方式(Content Provider),如在上面应用方面所论述的一样,通过调用其他应用程序的数据接口来实现数据的读写访问;
-> 网络方式主要是通过下面要提到的网络访问该网络提供的网络服务接口实现数据的读写服务(譬如WebService数据访问接口);
三、网络访问方面
主要是Http访问技术的封装,通过java.NET.*;以及Android.net.*;下面提供的HttpPost、DefaultHttpClient、HttpResponse等类提供的访问接口来实现具体的web服务访问
而是要写自己对Android UI设计的熟悉程度、Linux嵌入式方面、TCP/IP和HTTP协议、Socket通信,线程的使用以及网络通信方面的熟悉程度吧!毕竟有不少是在开发板上进行的。
7. android也应该遵循mvc的编程规范,activity只负责处理跳转,UI,和简单数据校验工作,业务逻辑放置在service类 中,sqlite操作稍加封装下,做个类似jdbcUtil的那种模板类,提供增删改查,分页等方法,这样dao操作就完善许多。我想作为java程序员 转做android开发,最大的障碍不在框架也不在谷歌sdk中的那些api,而是java基础。通过写程序发现,做手机开发的程序员,基本素质要过硬, 尤其在集合,线程,异常,io,http这些要非常透彻,不然一个看似很简单的功能,可能就会写的bug百出,甚至效率很低,可读性差,基本上自己回过头 都看不懂自己写的是什么,对接口和抽象类,包括匿名内部类的写法也要炉火纯青。
分享到:
相关推荐
在准备 Android 面试时,了解和掌握各种知识点至关重要。以下是一些基于提供的面试题内容的详细知识点解析: 1. **Java.IO 流**: - Java.IO 包中的流按照功能分为节点流和处理流。节点流是直接与数据源或目的地...
"2022中高级Android面试必知百题"这份资料精炼了大量面试题,重点突出了面试中常见的Java基础问题。以下将详细探讨其中涉及的Java知识点: 1. **抽象类与接口的区别** - 抽象类可以包含抽象方法的实现,而接口只能...
阿里巴巴的Android面试题集主要涵盖了计算机基础、数据结构与算法、Java编程、Android技术以及一些扩展领域的知识。以下是对这些知识点的详细解析: **第一章 计算机基础面试题** 这部分通常包括网络、操作系统和...
在《Android面试宝典5.0》中,内容广泛覆盖了Android开发领域中经常会遇到的面试题目,并且对这些题目进行了深入的分析和解答。书中的内容可以分为几个主要部分: 一、Android基础和高级面试 这部分内容包括对...
Java和Android面试题涵盖了许多核心概念,以下是这些知识点的详细说明: 1. **面向对象** (Object-Oriented Analysis and Design Principle, OOADP): 面向对象编程是Java和Android开发的基础,它涉及类、对象、继承...
Android面试四十题是一个精心整理的面试指南,涵盖了移动开发领域中Android面试的常见问题。以下是一些关键知识点的详细解答: 1. Android的四大组件包括:Activity(活动)、Service(服务)、BroadcastReceiver...
Android面试宝典包含两个宝典: 1【黑马项目宝典】虐面试官神器之必备黑马程序员项目宝典V1.1 内容包括:(1)电子商城(2)ListView系列(3)图像处理(4)动画效果(5)控件大全(6)新闻资讯(7)生活相关(8)...
《Android面试宝典4.0》是一本专门为准备参加Android相关职位面试的求职者准备的面试题集和知识点解析书籍,书中不仅覆盖了Android基础和高级知识点,还包含了Java基础和高级面试内容。此外,书中还涉及面试技巧、...
2023最新Android面试篇(2303版) 本资源摘要信息涵盖Java基础知识点,主要涉及Java中的数据类型、equals和hashCode方法、基本数据类型和引用类型的区别、多态的理解、String、StringBuffer和StringBuilder的区别等...
android 面试 1. 请描述下Activity的生命周期。 答:onCreate()Activity第一次加载时调用,用户构建窗体 onStart()Activity能被用户看到时时调用 onResume()Activity能够得到用户焦点时调用 onRestart()...
《Android面试宝典6.0》是一份针对Java和Android开发者进行面试准备的重要参考资料,它涵盖了从基础到高级的各类Android知识点。这份资料旨在帮助读者系统性地学习和复习,以便在面试中表现出色。 首先,Java是...
在Android面试中,掌握基本知识点和扩展知识点是至关重要的,这不仅体现了候选人的专业素养,也是评估其实际工作能力的标准。下面将详细解释这些知识点。 一、基本知识点 1. 四大基本组件:Activity(活动)、...
在准备Android面试的过程中,了解和掌握一系列核心知识点是至关重要的。以下是一些基于"Android面试题整理"的详细知识点解析: 1. **Android基础知识** - **Activity生命周期**:理解并能熟练绘制各个状态,包括...
《2018Android面试宝典》是一本专门为Android开发者准备的面试指南,它涵盖了大量在寻找Android开发职位时可能遇到的各种面试问题。这本书旨在帮助求职者深入理解Android平台的核心概念,提高技术实力,以便在面试中...
《Android面试宝典源码解析》 在移动应用开发领域,Android系统占据着主导地位,因此对于Android开发者来说,理解并掌握其核心技术是至关重要的。本篇将深度解析"android面试宝典"这一项目,该项目涵盖了Android...
在准备Android面试的过程中,了解和掌握相关知识点是至关重要的。以下是对标题和描述中提到的知识点的详细解析,以及它们在面试中的应用和重要性。 1. **J2SE基础**: J2SE(Java Standard Edition)是Java平台的...
以上就是“android面试题整理”中可能涵盖的主要知识点,每个话题都值得深入探讨和实践,以确保在面试中能够全面展示自己的专业能力。通过持续学习和项目实践,开发者可以不断提高自己的技术水平,为面试做好充分...
《Android面试题大全》这本书籍,作为一款压缩文件,包含了丰富的Android面试相关的知识点,旨在帮助求职者准备Android开发工程师的面试。以下是对其中关键概念和技术的详细解释: 1. **Android系统架构**:理解...
在Android面试过程中,掌握核心知识点是成功的关键。这份"Android面试宝典"涵盖了广泛的领域,旨在帮助求职者全面准备Android开发职位的面试。以下是一些关键知识点的详细说明: 1. **基础知识**:理解Java语言的...
《Android面试大全》是针对Java基础和Android技术的面试指南,涵盖了从基础知识到进阶技能的广泛内容。这本书旨在帮助Android开发者系统性地复习和掌握面试中可能遇到的关键知识点,以便在求职过程中表现出色。 ...