- 浏览: 289529 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
totot:
打扰大师了,acquireWakeLock(),releas ...
使用WakeLock使Android应用程序保持后台唤醒 -
totot:
打扰大师了,acquireWakeLock(),releas ...
使用WakeLock使Android应用程序保持后台唤醒 -
aaa6287152:
感谢楼主 问题解决 一开始按照第一条修改了,结果看第二条没有修 ...
The method of type must override a superclass method解决方式 -
Mark_dev:
chen646531623 写道达哥,很不幸,我出现了你所说的 ...
Unable to resolve host "...": No address associated 错误 解决方案 -
Mark_dev:
我也遇到楼上的那个问题。
Unable to resolve host "...": No address associated 错误 解决方案
1、Q:
如何成为高手?
A:
成为一名真正的Android高手必须掌握和遵循的一些准则:
1)学会懒惰
a
Don't Reinvent the Wheel(不要重复发明轮子)。
b
Inventing the Wheel(发明轮子)。
c
Don'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的代码写得更高效一些了。
发表评论
-
ASimpleCache 一个为android制定的 轻量级的 开源缓存框架。
2014-04-10 11:04 1713ASimpleCache 是一个为android制定的 轻量 ... -
android 中 EditText加入图标 更改边框颜色 设置透明 代码
2013-07-19 10:20 4037main.xml [java] view pl ... -
TortoiseGit安装教程
2013-07-17 11:40 2019TortoiseGit 是Windows下的可视化Git界面 ... -
使用WakeLock使Android应用程序保持后台唤醒
2013-07-17 11:02 3023在使用一些产品列如 ... -
Android AlarmManager实现不间断轮询服务
2013-07-17 10:48 2957在消息的获取上是选择轮询还 是推送得根据实际的业务需要来技 ... -
二维码、条形码扫描——使用Google ZXing
2013-07-17 10:20 3628我在项目中用到了二维码扫描的技术,用的是Google提供的Z ... -
android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度
2013-05-20 15:08 2318一:新建MyLocation类,本类主要管理使用各种获取经 ... -
android 基于百度地图api开发定位以及获取详细地址
2013-05-20 15:02 2880一:百度地图开发必须要到百度开发平台android开发api ... -
android google地图定位开发,且可以自由移动位置重新获取定位,地址信息
2013-05-20 15:00 2693一:申请key: 1.首先找到debug keyst ... -
Android UI库及组件推荐
2013-03-28 10:40 1871一、UI组件库 1. GreenDroid ... -
Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
2012-11-13 10:00 1800关键词:Android、模拟器、无法启动 某天,Andr ... -
关于Eclpse升级到ADT-20,xml布局文件不能正常显示问题
2012-10-29 17:39 17131.首先要把自己的eclipse中的adt升级到最新的版本(目 ... -
Android开发错误汇总
2012-10-29 17:38 3617大家都在为项目开发成功而喜悦,但可不知成功的路上是会经常出错的 ... -
The method of type must override a superclass method解决方式
2012-09-21 10:18 2264标签:override ActionSupport ... -
[程序猿感悟] Android平台开发中的重构三步走
2012-09-13 16:26 2023我们都知道,技术是优 ... -
Android Layout XML属性
2012-08-16 11:29 1220Layout对于迅速的搭建界面和提高界面在不同分辨率的屏幕 ... -
Eclipse快捷键大全
2012-08-02 09:50 1118Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ct ... -
Android中asset文件夹和raw文件夹区别
2012-07-26 16:58 1995*res/raw和assets的相同点 ... -
分享45个android实例源码,很好很强大.大家赶快来收藏吧!!
2012-07-26 15:55 1119http://www.eoeandroid.com/threa ... -
Intent调用大全,史上最全的
2012-07-26 12:11 1061//调用浏览器 Uri uri = Uri.parse(&q ...
相关推荐
Android高手过招 FAQ
Android高手过招 FAQ
Android高手过招 FAQ
这份名为"Android高手过招 FAQ .doc.zip"的压缩包文件,很可能包含了开发者们在实践中遇到的常见问题及其解决方案,或者是对Android系统、Java编程语言的深度解析。由于文件列表中只有一个名为"Android高手过招 FAQ ...
【Android高手过招FAQ】 Android,作为全球最受欢迎的移动操作系统之一,是许多开发者尤其是毕业生们热衷探索的领域。这份“Android高手过招FAQ”压缩包文件,旨在为那些正在学习和研究Android开发的同学们提供宝贵...
2.Android高手过招 FAQ