Android 入门 (一) 试用
Android的版本
android的版本有很多 0.9 ,1.0 ,1.5,1.6,2.0,2.1
09年4月15日 cupcake android 1.5? ?
09年9月15 Donut?? android 1.6? : linux内核升级到2.6.29。cdma , wvga ,qvga 的支持
?????????????????????? 支持OpenCore2媒体引擎 , TTS
09年10月28日 android 2.0 Eclair
???????????? 支持 HTML5
? Revamped graphics architecture for improved performance that enables better hardware acceleration.
?
2010年1月 android 2.1 Flan
features 和2.0一样,主要是修改一些bugs
Android平台的代码
1 安装工具repo :
?? curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo
2 下载平台的代码
??? 代码放在/media/H/android下面
1. 创建一个目录,放代码:
mkdir android
cd android
2. 运行 repo init 下载最新的源代码:
repo init -u git://android.git.kernel.org/platform/manifest.git
3. 当提示输入姓名和E-mail时,输入姓名和gmail的邮件地址。成功后会提示如下信息:
????? repo initialized in /android
4 下载
repo sync
?Notes: 如果要下载别的版本的代码,比如cupcake 则在第2步
?? repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
?? 下载eclair 则
?? repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
android编译
Host : ubuntu 9.04
Java ,javac 版本? 1.6
(一) 源码的编译
编译很简单 直接在android目录下 make ,等上5,6小时就可以了,不过android的编译系统要求java,javac的版本是1.5的,在build/core/main.mk里,
会对java,javac的版本进行检测。如果版本不对,则出现问题:
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
?
Your version is: java version "1.6.0_0".
The correct version is: 1.5.
?
Please follow the machine setup instructions at
??? http://source.android.com/download
solution 1 :编辑 build/core/main.mk
修改
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
为
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')
? 缺点: 但编译sdk的时候还是会出现问题 。
make sdk
?Docs droiddoc: out/target/common/docs/services
javadoc: 错误 - 在 doclet 类 DroidDoc 中,方法 start 已抛出异常 java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: 未找到 sun.util.resources.OpenListResourceBundle 的类文件
solition 2:安装1.5版本的jdk:
$ sudo apt-get install sun-java5-jdk flex
$ sudo update-java-alternatives -s java-1.5.0-sun
(二)SDK的编译
? 在编译完源码后,再执行 make sdk
?在out/host/linux-x86/sdk下面有
android-sdk_eng.lawrencekang_linux-x86? android-sdk_eng.lawrencekang_linux-x86.zip? sdk_deps.mk
模拟器的运行
现设置好环境变量
export PATH=$PATH:/media/H/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/media/H/android/out/target/product/generic
export ANDROID_SWT=/media/H/android/out/host/linux-x86/
然后执行?? emulator
用法有:
1 用缺省的virtual device 运行模拟器
?? emulator
2 用某个皮肤来运行
?? emulaor -skin QVGA-L?
?? emulator -skin WVGA800 则用WVGA800的皮肤来运行模拟器
? 但显示 :
? emulator: emulator window was out of view and was recentred
我们可以通过-scale ??选项来解决这个问题,针对我们这个WVGA skin,用./emulator -skin WVGA -scale 0.9来启动模拟器就没问题了
3 直接指定大小
?emulator -skin 800x480
不过google的网站http://developer.android.com/上有这样一段话 :
TheAndroid SDK includes several Emulator skins that you can use to controlthe resolution and density of the emulated device's screen. To select aspecific skin for running the emulator, create an AVD that uses thatskin. Please do not use deprecated emulator options such as -skin tocontrol the skin used by an emulator instance. For more informationabout AVDs, see Android Virtual Devices.
意思是最好不要用-skin来运行模拟器,而要用-avd
创建avd用的工具是android
android
出现问题:
Error: Error parsing the sdk.
Error: /media/H/androidcupcake/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.
但在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/tools目录下 ./android 则可以
原来在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/下面有platforms目录,可见android会查找
上一级目录下的platforms目录
将platforms 和add-ons copy到 out/host/linux-x86下面
然后运行 android就可以了
创建的avd放在 ~/.android/avd下面
假如创建了一个foo ,则emulator -avd foo
模拟器跑起来后 ,还可以用adb shell 来执行 终端命令。
详细解决方案
编译android源码出现的有关问题解析
热度:33 发布时间:2016-05-01 18:51:15.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- android Post文件到ASP.NET的有关问题,能收到参数收不到文件
- RIM 替 Android 开发者提供免费的 PlayBook!2月13日前
- android 动态设立控件高度
- Android test project 编译方法
- android -相机使用教程(1)解决方法