1、Q:如何成为高手?
A:成为一名真正的Android高手必须掌握和遵循的一些准则:
1)学会懒惰
aDon't Reinvent the Wheel(不要重复发明轮子)。
bInventing the Wheel(发明轮子)。
cDon't Reinvent the Wheel(不要重复发明轮子)。
“轮子理论”,也即“不要重复发明轮子”,这是西方国家的一句谚语,原话是:Don't Reinvent the
Wheel。“不要重复发明轮子
”意思是企业中任何一项工作实际上都有人做过,我们所需要做的就是找到做过这件事情的人。拿到软件领域中就是指有的项目或功能,别人已经做过,我们需要用
的时候,直接拿来用即可,而不要重新制造。
2)精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)
3)编写可重用、可扩展、可维护、灵活性高的代码
4)高效的编写高效的代码
5)学会至少一门服务器端开发技术
2、Q:JNI是什么?
A:JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native
Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是
C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。
使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。
3、Q:Android和Linux的区别?
A:Android是一个专门针对移动设备的软件集,包括一个操作系统,中间件和一些重要的应用程序。Android SDK
提供了在Android平台使用java语言进行android 应用程序开发必须的工具和API接口。Android
系统架构除了Linux2.6内核之外,还提供了丰富的lib和适用于java的运行时环境(很重要的一点是Dalvik虚拟机,类似于JVM)、应用程
序框架和核心应用。在此基础之上可以快速开发应用程序。
linux内核像是核心技术支持,而google 将其商业化于移动设备上。android上开发应用程序和Windows MFC开发有些类似。
4、Q:SDK升级了,如何更新SDK?
A:更新SDK是非常棘手的。当一个新的SDK发布,必须是plugin也发布。更新容易出现的错误是两个版本都存在,而且都不正常。最终不得不卸载了它
们并且重新安装最新的一个。然后那个最新的SDK工作正常了。建议任何面对SDK或者plugin升级的人都采用相同的过程。简单的卸载老版本,然后安装
新版本。不要升级。
5、Q:如何进入Recovery模式
A:每部Android设备进入Recovery模式的方法不同。以Milestone为例:若bootloader为90.78,按住键盘的“X”键,
再按电源键开机,看到moto的经典logo即可放开此2键。等待出现一个三角形图标,然后按住音量向上键+轻按拍照键,会出现四个选项。放开按键,可以
用方向键选择一个选项。作用分别为重启,应用update.zip,清除所有数据至出厂状态、清除cache。
6、Q:Android bionic移植需要注意的事项
A:下面通过一个例子来说明移植binic需要做的事情(BIONIC使用的内核头文件从2.6.29 升级到 2.6.31):
1)修改之前,先要备份 android/bionic
2)按照下面方法复制linux kernel v2.6.31 头文件:
复制 include/asm-generic 到 bionic/libc/kernel/original folder
复制 include/linux 到 bionic/libc/kernel/original folder
复制 include/mtd 到 bionic/libc/kernel/original folder
3)运行 tools/update_all.py 脚本,生成新的头文件,方法如下.
$ cd android/bionic/libc/kernel
$ tools/update_all.py
以上的操作将复制新的头文件到 bionic/libc/kernel/common 目录
4)删除 bionic/libc/kernel/original 目录
5)复制平台相关的头文件:
复制 linux v2.6.31 平台相关的 asm 目录到指定的路径,方法如下:
复制 arch/arm/include/asm 到 android/bionic/libc/kernel/arch-arm/
复制 arch/x86/include/asm 到 android/bionic/libc/kernel/arch-x86/
6)从 v2.6.29 bionic/libc/kernel/common/linux 复制一下的头文件到新的 android/bionic/libc/kernel/common/linux 目录:
android-alarm.h
android-pmem.h
android_power.h
ashmem.h
binder.h
msm_adsp.h
msm_audio.h
msm_mdp.h
keychord.h
7)编译
$ cd android
$ make -j4
7、Q:Android源码下vendor目录下文件的作用?
A:指的是某些公司的产品型号,主要是一些针对硬件配置的东西,比如radio 方面的,若是采用TI 的,这里面会有TI提供的一些RIL方面的接口等。
8、Q:编译Android源码和编译Android内核有什么区别?
A:其实没什么区别,就多了几个android特有的驱动,最重要的是binder
9、Q:如何获取手机和存储卡上的图片?
A:
/**
* 通过uri获取文件的绝对路径
* @param uri
* @return
*/
protected String getAbsoluteImagePath(Uri uri)
{
// can post image
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery( uri,
proj, // Which columns to return
null, // WHERE clause; which rows to return (all rows)
null, // WHERE clause selection arguments (none)
null); // Order-by clause (ascending by name)
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
复制代码
10、Q:如何使用双缓冲?
A:系统自身已经实现了双缓冲,也就是说为了避免重影,必须连续onDraw两次,或者是对上一次onDraw里面画脏的部分进行修复。
执行Bitmap.createBitmap函数一般要花销100-300ms的时间,要想提高它的效率,只能祈祷google能把android的代码写得更高效一些了。
分享到:
相关推荐
成为Android高手必须掌握的28大项内容和10个建议,非常好非常有用
在追求成为Android开发高手的道路上,你需要...《如何成为Android高手.pdf》这本书可能包含了这些领域的详细介绍,建议详细阅读并实践其中的示例,不断探索和学习,理论与实践相结合,才能在Android开发领域游刃有余。
Android高手建议 关于让你成为一个android开发高手的书籍
其次,Android高手建议通常包括提升代码质量、优化性能、遵循最佳实践等方面。这可能涉及到深入理解Android的生命周期、内存管理、线程模型,以及如何使用各种工具进行性能分析和调试。同时,对Android组件如...
在“Android高手过招 FAQ.zip”这个压缩包中,我们可以看到它主要包含了两份文件:一个名为“Android高手过招 FAQ .doc”的文档和一个“说明.txt”。从标题和描述中,我们可以推测这个资源可能是一个关于Android开发...
这份名为"Android高手过招 FAQ .zip"的压缩包文件显然是一份非常实用的学习资源,包含了安卓项目源码、论文、参考资料以及学习资料,对于进行毕业设计、课程设计或是提升个人安卓开发技能来说都是宝贵的财富。...
【电脑高手必备的一些知识应用】 在信息技术日新月异的今天,成为一名电脑高手不仅意味着...而提供的《电脑高手必备.doc》文档可能包含了这些知识点的详细讲解和实践案例,建议仔细阅读,以进一步巩固和扩展你的知识。
从这份文档中,我们可以提炼出一系列关于Android学习与开发的关键知识点,这些内容不仅涉及了作者对Android系统的理解和评价,还涵盖了其个人的学习经历、技术成长路径以及对Android开发的深入探讨。 ### Android与...
2. **成为Android高手必须掌握的28大项内容和10个建议**: 这可能是作者总结的成为优秀Android开发者的关键技能点和实践建议,内容可能涵盖UI设计、性能优化、网络编程、多线程处理、数据库操作等,以及如何避免常见...
- **环境变量**:为了方便在命令行中使用,建议将Android SDK和Android Studio的bin目录添加到系统环境变量中。 - **插件安装**:根据项目需求安装必要的插件,比如Gradle、Git等。 - **首选项设置**:调整编辑器...
5. 学习资源与建议:包括了Android学习必须掌握的内容和建议、Android开发教程笔记、以及面试宝典等。这些资源不仅为学习提供了指导,还为准备面试或者技术交流提供了实用的素材。 6. 案例分析与实践:通过提供的...
根据提供的文件信息,“老罗Android视频教程第二季(全套视频+源码)”,我们可以提炼出以下相关知识点: ### 一、教程概述 1. **教程背景**:此教程是由知名IT教育博主“老罗”推出的关于Android开发的系列教程之...
如1果你想成为真正的高手,建议多看看Android的源代马以及知名的开源项目代马,学习一下大师们的思路与技巧。 如果你能将每个范例都组1看一下,基本上就可以了解到Android 体系的大概,在实际进行Android 编程工作...
Android为开发者提供了一个公平的竞争平台,无论你是Java高手还是新手,都能在同一起跑线上出发。这在手机发展史上是前所未有的,激发了广大程序员的参与热情,Java World论坛和Google官方的Developer Discussion ...
在进入精彩的Android开发世界之前,首要任务是正确配置Android开发环境。本文将详细介绍如何进行Android可视化环境配置,以便...记住,实践是检验真理的唯一标准,动手尝试并不断学习,你将很快成为Android开发的高手。
#### 二、相关工具(10个) - **知识点**:这些工具可能包括但不限于模拟器、IDE、调试工具等,有助于提高开发效率。 - **适用人群**:适合所有 Android 开发者使用。 #### 三、源码(20套) - **知识点**:通过...
从给出的标题"android摄像"和描述"这是一款手机摄像软件,目前还没做完,放在这里,希望遇到高手"来看,我们可以深入探讨以下几个关键知识点: 1. **Android相机API**: - Android提供了多种接口来访问和操作...
15. **Android高手进阶教程【pdf高清版】** - **概述**:面向有一定基础的开发者,提供了更深层次的技术指导。 - **核心知识点**: - 高性能编程技巧。 - 复杂UI布局的构建。 - 多媒体处理技术。 16. **...