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:如何获取手机和存储卡上的图片?

protected String getAbsoluteImagePath(Uri uri){// can post imageString [] proj={MediaStore.Images.Media.DATA};Cursor cursor = managedQuery( uri,proj, // Which columns to returnnull, // 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:如何使用双缓冲

  系统自身已经实现了双缓冲,也就是说为了避免重影,必须连续onDraw两次,或者是对上一次onDraw里面画脏的部分进行修复。

  执行Bitmap.createBitmap函数一般要花销100-300ms的时间,要想提高它的效率,只能祈祷google能把android的代码写得更高效一些了。

转载于:https://www.cnblogs.com/jackchiang/archive/2013/05/11/4589170.html

成为Android高手的十个建议相关推荐

  1. 安卓开发中的 “Android高手” ,需要具备哪些技术?

    前言 **成为一名安卓开发者很容易,但是要成为一名 "Android 高手"却不那么容易:**这需要付出很多的努力,耐心,奉献和毅力才能做到 那么一个 Android 开发高手,需 ...

  2. 如何成为Android高手

    要成为Android 高手并不是一件容易的事情.并不是很多人想象的 能够飞快的写出几行漂亮的代码去解决一些困难的问题 就是Android 高手了.真正的Android 高手需要考虑的问题远远不是写些漂 ...

  3. 如何成为Android高手--转载

    http://www.cnblogs.com/guoshiandroid/archive/2010/06/05/1752150.html 前言 本文pdf下载链接 配套视频连接 若立志成为Androi ...

  4. 如何成为Android高手 .转

    from http://www.cnblogs.com/guoshiandroid/archive/2010/06/05/1752150.html 前言 本文pdf下载链接 配套视频连接 若立志成为A ...

  5. 如何成为一个Android高手

    很多Android开发者已经度过了初级.中级,如何成为一个Android高手呢? eoeAndroid就各个级别的程序员应该掌握哪些内容作为下面分类. 一.初级 1. 拥有娴熟的Java基础,理解设计 ...

  6. (转自scrum中文网)给Scrum Master的十个建议,你值得拥有

    本文转自:Scrum中文网 文章链接:http://www.scrumcn.com/agile/scrum/22035.html 你想成为一个优秀的Scrum Master吗? 我想是的,除非你是一个 ...

  7. 给Scrum Master的十个建议,你值得拥有((转自scrum中文网))

    本文转自:Scrum中文网 文章链接:http://www.scrumcn.com/agile/scrum/22035.html 你想成为一个优秀的Scrum Master吗? 我想是的,除非你是一个 ...

  8. 程序员减轻压力的十个建议

    你在影院看电影,是,你的眼睛盯着屏幕,看着画面从你眼前闪过,但你知道,你的心并不在那里.你想着从电影开始到现在,微博上发生了什么大事儿?有什么热门话题?校内上昨天发的照片,有人去踩吗?新买的书桌又什么 ...

  9. Android之如何成为Android高手

    成为Android高手一般分为六个阶段: 第一阶段:熟练掌握Java SE,尤其是对其内部类.线程.并发.网络编程等需要深入研究:熟练掌握基于HTTP协议的编程,清楚POST和GET等请求方式流程和细 ...

  10. Android高手的六大境界

    成为Android高手一般分为六个阶段: 第一阶段:熟练掌握Java SE,尤其是对其内部类.线程.并发.网络编程等需要深入研究:熟练掌握基于HTTP协议的编程,清楚POST和GET等请求方式流程和细 ...

最新文章

  1. 网站压力测试工具webbench
  2. XML外部实体注入漏洞——XXE简单分析
  3. 阿里“计算”家族技术领头人分享会
  4. C语言高级编程:结构体中定义数组的“妙用”
  5. CentOS经常使用文件操作命令[百度博客搬家]
  6. ds1302模块 树莓派_树莓派用4g模块实现三网通开机自启动
  7. 16. jQuery - 获取并设置 CSS 类
  8. OpenCore引导配置说明第六版
  9. DS18B20温度传感器
  10. EMOS嵌入式仿真平台-编程环境v101
  11. 传奇服务器二级密保信息存档,找回玩家账号和二级密码,修改密码和密保
  12. html5 文本框只能输入正整数,控制input文本框只能输入正整数
  13. Chrome 优化指南
  14. 蚂蚁区块链第8课 如何创建新的账户,获取私钥和identity标识?
  15. 传销——从数学游戏到经济邪教
  16. matlab绘制平面等值线图
  17. 图片延迟加载对seo有什么影响呢?
  18. Vue过滤器:第二天
  19. 如何评职称出书注意事项
  20. 39.html5的动画(animation)

热门文章

  1. 卷积神经网络问题总结
  2. php考试试卷,php测试题(一)
  3. python编写量化交易程序英语_Python量化交易开源框架:AmazingQuant
  4. C++ std::enable_shared_from_this
  5. apache2: unrecognized service
  6. 数组中常用几种的Arrays方法
  7. php字符串怎么判断是否相等,php判断两个字符串是否相等
  8. oracle自定义排序规则_Excel的排序方法,你会几种?
  9. (*(void(*)())0)();
  10. docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)