【零】
如果你仅仅是对默认的主题进行很少的修改,可以查看Android本身提供的一些主题模式,比如将背景变成透明,可以在AndroidManifest.xml中你想改的activity的tag中加入:
android:theme="@android:style/Theme.Translucent"
然后直接运行就可以了。可以参考官方说明。
【一】
如果需要将一个Activity的主题改成自定义形式:
1.先在AndroidManifest.xml中你想改的activity的tag中加入:
android:theme="@style/MyTheme"
如果需要将该主题模式运用于所有Activity,可以在AndroidManifest.xml中写上这样一句:
<activity android:theme="@style/MyTheme">
2.然后在res/values文件夹下创建一个styles.xml的文件,在文件中写入:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Light" >
<!--需要定义的内容-->
</style>
</resources>
3.需要定义的内容一般以item形式定义,例如:
<item name="android:textColor">#00FF00</item>
这样可以应用自定义的主题模式了。
【二】
需要注意的还有Android版本问题,如果开发的应用面向Android3.0以下的用户,那么最好采取以下步骤:
1.在res文件夹下创建values-v11(面向Android 3.0+)和values-v14(面向Android 4.0+)两个文件夹。
2.在这两个文件夹中分别写入
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Holo.Light" >
<!--需要定义的内容-->
</style>
</resources>
和
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.DeviceDefault.Light" >
<!--需要定义的内容-->
</style>
</resources>
以上Holo是对于Android 3.0+的,DeviceDefault是对于Android 4.0+的。
或者其他你需要引用的parent,比如
<style name="MyTheme" parent="android:Theme.Holo.Light.NoActionBar" >
<!--需要定义的内容-->
【三】
最后一个问题是在自定义的主题中定义不同插件的模式,这里以Tab插件为例,我们可以用这样的形式
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Holo.Light.NoActionBar" >
<item name="android:tabWidgetStyle">@style/LightTabWidget</item>
</style>
<style name="LightTabWidget" parent="@android:style/Widget.TabWidget">
<!-- 需要定义的内容 -->
</style>
</resources>
来单独定义插件的一些属性。
这里可以参考themes_device_defaults.xml的源码。
2012年10月23日星期二
使用Android新版theme改变插件的主题
写好一个Project之后发现它的Spinner,TimePicker之类的Widgets不知何时都变成了旧版的主题。这个问题看似非常之弱却毫无解决的头绪。于是从头写过,一步一步Run,终于发现问题根源。
原因原来是在res/AndroidManifest.xml中误加入一条:
android:theme="@android:style/Theme.NoTitleBar"
须知这是一条旧版Android的主题的命令,同一个Activity中的所有插件自然就统统变成了旧版的形式。
要用新版(API Level 13 up)的主题来起到上述命令去掉TitleBar的作用,可以使用如下语句:
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
或者
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
官方说明见此处。
以后要注意碰到类似主题形式变化的问题,检查一下AndroidManifest.xml这个文件哦。
原因原来是在res/AndroidManifest.xml中误加入一条:
android:theme="@android:style/Theme.NoTitleBar"
须知这是一条旧版Android的主题的命令,同一个Activity中的所有插件自然就统统变成了旧版的形式。
要用新版(API Level 13 up)的主题来起到上述命令去掉TitleBar的作用,可以使用如下语句:
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
或者
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
官方说明见此处。
以后要注意碰到类似主题形式变化的问题,检查一下AndroidManifest.xml这个文件哦。
2012年10月18日星期四
解决错误:/gen already exists but is not a source folder. Convert to a source folder or rename it.
这个错误一般是由对函数库的改动或是路径的重置引起的,显示为
/myProject/gen already exists but is not a source folder. Convert to a source folder or rename it.
解决这个错误的方法如下:
1.右键点击Package Exploreer下的myProject,选择Properties.
2.选择Java Build Path,再选择Source.
3.点击右边的Add Folder, 选中gen文件夹,点击OK,之后Yes.
4.在Properties的主面板中点击OK确定。
5.右键点击Package Exploreer下的myProject,选择Android Tools, 点击Fix Project Properties .
这样我们就把gen文件夹转变为一个source folder了。
现在我们再Project->Clean,就发现错误已经不再出现了。
值得注意的是,如果这个错误是由路径的重置引起的,那么一定要按照上述方法再将src文件夹转变为一个真正的source folder(出现一个方块形package标志)。
/myProject/gen already exists but is not a source folder. Convert to a source folder or rename it.
解决这个错误的方法如下:
1.右键点击Package Exploreer下的myProject,选择Properties.
2.选择Java Build Path,再选择Source.
3.点击右边的Add Folder, 选中gen文件夹,点击OK,之后Yes.
4.在Properties的主面板中点击OK确定。
5.右键点击Package Exploreer下的myProject,选择Android Tools, 点击Fix Project Properties .
这样我们就把gen文件夹转变为一个source folder了。
现在我们再Project->Clean,就发现错误已经不再出现了。
值得注意的是,如果这个错误是由路径的重置引起的,那么一定要按照上述方法再将src文件夹转变为一个真正的source folder(出现一个方块形package标志)。
2012年10月15日星期一
发布Android应用时如何给apk自行签署金钥
发布Android应用时,它会提醒你提交自行签署金钥版的apk压缩包。因为之前一直Eclipse中调试模式下用的unbug版的签署,现在要换成自己签署了。在Linux下自行签署金钥步骤如下:
1.在装Java JDK时会同时装keytool,这个东东一般装在/usr/bin下。现在我们要调用它,先打开cd /usr/bin,同时为了让我们有调用权限,之后的步骤需要在root下操作su.
2.调用keytook来建立一个私人密钥,不同参数的含义请参见说明。这里要注意的是,因为上传到android市场时它会提示你有效密钥应超过50年,所以我用了20000天,不知道用少了是否有影响。建立密钥命令如下:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 20000
这时候命令行中会出现如下问题,依次回答:
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: XXXX
您的组织单位名称是什么?
[Unknown]: XX
您的组织名称是什么?
[Unknown]: XX
您所在的城市或区域名称是什么?
[Unknown]: HK
您所在的州或省份名称是什么?
[Unknown]: HK
该单位的两字母国家代码是什么
[Unknown]: HK
CN=XXXX, OU=XX, O=XX, L=HK, ST=HK, C=HK 正确吗?
[否]: y
正在为以下对象生成 2,048 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 20,000 天):
CN=XXXX, OU=XX, O=XX, L=HK, ST=HK, C=HK
输入<alias_name>的主密码
(如果和 keystore 密码相同,按回车):
再次输入新密码:
[正在存储 my-release-key.keystore]
这样,就私人密钥就创建成功了。
3.在发布模式下编译应用。在Eclipse里Package Explorer下右键单击你所要加密的项目,选择Android Tool,再选择Export Unsigned Application Package,将这个apk在某一路径下保存,默认保存在Eclipse文件夹下。
4.其实放在那里没什么用,我们需要把这个apk转移到建立私人密钥的地方
mv /home/xxxx/eclipse/myActivity.apk /usr/bin
其中myActivity是你刚刚编译的应用的名字。
5.好了,现在可以用自己的私人密钥给自己开发的应用签署了,命令是
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore myActivity.apk alias_name
相关参数可以参考说明。
这时候命令行中会出现如下问题,依次回答:
输入密钥库的口令短语:
输入 alias_name 的密钥口令:
答对之后出现:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/ALIAS_NA.SF
正在添加: META-INF/ALIAS_NA.RSA
.
.
.
后面还有一大长串就不详细列出了
6.最后,我们要确定加密完成。
jarsigner -verify -verbose myActivity.apk
会显示你加密的package的具体信息,最后面是说明:
s = 已验证签名
m = 在清单中列出条目
k = 在密钥库中至少找到了一个证书
i = 在身份作用域内至少找到了一个证书
jar 已验证。
7.现在就可以在Android市场上发布你的应用了,要注意的是:
apk 套件名稱不能以下列值為開頭:[com.android, com.google, android, com.example]
8.为了优化你将要发布的应用,可以使用zipalign工具,这个工具在android-sdks->tools文件夹下,是一个.exe文件。用它来进行优化,需要使用命令
./zipalign -v 4 myActivity.apk zimyActivity.apk
其中myActivity.apk是zipalign之前的压缩档案,zimyActivity.apk是优化之后输出的压缩档案。如果希望直接覆盖原档案,则可以用
./zipalign -f -v 4 myActivity.apk
最后出现
Verification successful
就OK了。
./zipalign -v 4 myActivity.apk zimyActivity.apk
其中myActivity.apk是zipalign之前的压缩档案,zimyActivity.apk是优化之后输出的压缩档案。如果希望直接覆盖原档案,则可以用
./zipalign -f -v 4 myActivity.apk
最后出现
Verification successful
就OK了。
2012年10月14日星期日
解决error: Found text " " where item tag is expected
这是一个Android开发中.xml文件里一个奇怪的编译错误,具体报错如下:
[2012-10-15 13:38:07 - com.example.xxx.MainActivity] /home/xxx/workspace/com.example.xxx.MainActivity/res/values-zh-rTW/strings.xml:12: error: Found text "
[2012-10-15 13:38:07 - com.example.xxx.MainActivity] " where item tag is expected
其实这是空格的格式不正确造成的。如果是原始的手工编辑文档,是不会出现这个问题的。但是如果在不同的文档格式中复制粘帖,就会导致上述错误。
所以为了解决这个问题,建议:
1.检查是否存在不必要的空格,如有即删。如果不行,那么2;
2.重新进行复制粘帖,尽量不要使用不同的文档格式。如果不行,那么3;
3.Replace所有xml文档中whitespace with你手工敲出的space. 如果不行,那么4;
4.自己手工重新编辑一遍。
这类错误可以试试用MS word or excel调用一下文档,看是否空格格式错误。
补充说明一下:类似的错误(xml文档中空格格式错误)还会gen文件夹中R.java出现
Syntax error on tokens, delete these tokens
的报错。同样通过以上的方法可以解决这个错误。
补充说明一下:类似的错误(xml文档中空格格式错误)还会gen文件夹中R.java出现
Syntax error on tokens, delete these tokens
的报错。同样通过以上的方法可以解决这个错误。
2012年7月14日星期六
Draw 9-patch的用法——入门级教学
Draw 9-patch是一个在android开发中非常好用的图像处理工具,它的想法很简单,将一张图片用四条线分成九个格子,就可以简单地控制它的大小和覆盖内容的位置。
这里有个android官方版的教程,写得简单明了,不过有些细节不够清楚。所以这里我把我的使用方法记下来。
1.在文件夹中打开android-sdks -> tools,找到文件夹中的一个叫做draw9patch的shell脚本文件,点击运行它。
2.你会发现这个程序的界面实在太简单了,所有的菜单里面的选项只有:打开一个9patch类型的图像,保存一个9patch类型的图像,退出。那么,要创建新的图像,你只能把你待处理的图片拖曳到这个程序的窗口里去。
3.为了方便操作,把下面的三个选项里“是否显示xxx”都给勾上,调整zoom到一个合适的视角。结果如下:
4.下面开始画线。在你拖进去的图片的边缘处,你会发现一些灰白相间的小格子,这就是画线的地方,鼠标单击就可以画黑线了。注意,这时候最好放大很多倍,可以看得比较清楚,细节如下:
5.按照步骤4在四周分别画上四条黑线,这样就把图片分成九份了。就是下图这个样子:
6.点击File -> Save 9-patch,然后就可以把这个图像保存成名为aaa.9.png的格式了。
7.将这个图像放在你的App project的res -> drawable的文件夹里,注意,在xml的文件中引用这个图像时id应为drawable/aaa,而不是aaa.9,所以,drawable文件夹里也不可以同时放aaa.9.png 和 aaa.png!
8.完成上述步骤后,你就可以把这个图像设为某个模块的背景,这个模块的内容就会显示在九部份中正中的那一个部分中了(如上图灰色部分)~
有趣得很吧~
这里有个android官方版的教程,写得简单明了,不过有些细节不够清楚。所以这里我把我的使用方法记下来。
1.在文件夹中打开android-sdks -> tools,找到文件夹中的一个叫做draw9patch的shell脚本文件,点击运行它。
2.你会发现这个程序的界面实在太简单了,所有的菜单里面的选项只有:打开一个9patch类型的图像,保存一个9patch类型的图像,退出。那么,要创建新的图像,你只能把你待处理的图片拖曳到这个程序的窗口里去。
3.为了方便操作,把下面的三个选项里“是否显示xxx”都给勾上,调整zoom到一个合适的视角。结果如下:
4.下面开始画线。在你拖进去的图片的边缘处,你会发现一些灰白相间的小格子,这就是画线的地方,鼠标单击就可以画黑线了。注意,这时候最好放大很多倍,可以看得比较清楚,细节如下:
5.按照步骤4在四周分别画上四条黑线,这样就把图片分成九份了。就是下图这个样子:
6.点击File -> Save 9-patch,然后就可以把这个图像保存成名为aaa.9.png的格式了。
7.将这个图像放在你的App project的res -> drawable的文件夹里,注意,在xml的文件中引用这个图像时id应为drawable/aaa,而不是aaa.9,所以,drawable文件夹里也不可以同时放aaa.9.png 和 aaa.png!
8.完成上述步骤后,你就可以把这个图像设为某个模块的背景,这个模块的内容就会显示在九部份中正中的那一个部分中了(如上图灰色部分)~
有趣得很吧~
2012年5月23日星期三
如何让你开发的Android应用在手机上运行(适用Ubuntu)
开发了一个应用后,总要想在自己的手机上跑跑的,下面就说说怎么在实机上运行开发好的应用:
1.确认你手机的Android版本不低于你开发的平台所用的Android版本。如果没达到,就升级吧,官方的没有,小心刷机啊。
2.在你的手机里选择“设置->应用程序->开发”,把开发里的两个选项“USB调试”和“允许模拟地点”打上勾勾。
3.通过USB接口将手机连在电脑上。
4.确认已经连上后,在终端里敲入如下命令:
sudo gedit /etc/udev/rules.d/51-android.rules
sudo gedit /etc/udev/rules.d/51-android.rules
来创建一个51-android.rules文件,在这里我是用gedit文档的。
5.在这个空的51-android.rules文件添加
这样一句,保存。注意Vendor ID 注意对于不同品牌的手机是不一样的,见本文结尾处表。SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
6.在终端里敲入如下命令:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo chmod a+r /etc/udev/rules.d/51-android.rules
来运行这个文件。
7.运行/android-sdks/platform-tools中的可执行文件adb,查看以确认你的设备已连接并可用。
8.在Eclipse中选择你所要运行的Package,点击运行,(如果之前已经在虚拟机上运行过,如果没有需要选择Android Application)跳出一个框框,选择Choosing a running Android device中你的手机,点击OK。完成。
| Company | USB Vendor ID |
|---|---|
| Acer | 0502 |
| ASUS | 0b05 |
| Dell | 413c |
| Foxconn | 0489 |
| Fujitsu | 04c5 |
| Fujitsu Toshiba | 04c5 |
| Garmin-Asus | 091e |
18d1 | |
| Hisense | 109b |
| HTC | 0bb4 |
| Huawei | 12d1 |
| K-Touch | 24e3 |
| KT Tech | 2116 |
| Kyocera | 0482 |
| Lenovo | 17ef |
| LG | 1004 |
| Motorola | 22b8 |
| NEC | 0409 |
| Nook | 2080 |
| Nvidia | 0955 |
| OTGV | 2257 |
| Pantech | 10a9 |
| Pegatron | 1d4d |
| Philips | 0471 |
| PMC-Sierra | 04da |
| Qualcomm | 05c6 |
| SK Telesys | 1f53 |
| Samsung | 04e8 |
| Sharp | 04dd |
| Sony | 054c |
| Sony Ericsson | 0fce |
| Teleepoch | 2340 |
| Toshiba | 0930 |
| ZTE | 19d2 |
2012年5月17日星期四
解决WARNING: Application does not specify an API level requirement!
这是个不太能注意到又很常见的问题:
WARNING: Application does not specify an API level requirement!
Device API version is xx (Android x.x)
解决方法:
在AndroidManifest.xml中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.xxx">
下方加入一行:
<uses-sdk android:minSdkVersion="xx"/>
其中xx是API version的版本号,在上述WARNING的第二行的下划线处。
WARNING: Application does not specify an API level requirement!
Device API version is xx (Android x.x)
解决方法:
在AndroidManifest.xml中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.xxx">
下方加入一行:
<uses-sdk android:minSdkVersion="xx"/>
其中xx是API version的版本号,在上述WARNING的第二行的下划线处。
2012年5月8日星期二
出现xxx cannot be resolved or is not a field问题的解决方案
这样的问题一般会在你的方法中引用resource中的场参数时出现,比如:
对于R.array有:array cannot be resolved or is not a field.
对于R.main有:main cannot be resolved or is not a field.
对于R.id有:id array cannot be resolved or is not a field.
要解决这个问题,首先看一下你的res文件夹中有没有这个场的定义,一般res中默认只有layout.main.xml, drawable.xxx和value.string.xml,需要自己添加一些你需要的xml文件。注意:一定要添加在恰当的位置比如说array.xml就应该在value这个文件夹下。
如果确认有,再检查一下res下面所有文件是否都无报错。如果res下某一个文件报错,比如main或者AndroidManifest,也会影响其他场不能正确被引用。
如果都没有错误,再检查一下在你的主程序中是否不小心引入了android.R如下:
import android.R
如果有,请删除。
如果还不行,可以尝试一下:Project ==> Clean ==> Check your project and press OK.
再不行的话,我也就没辙了。
对于R.array有:array cannot be resolved or is not a field.
对于R.main有:main cannot be resolved or is not a field.
对于R.id有:id array cannot be resolved or is not a field.
要解决这个问题,首先看一下你的res文件夹中有没有这个场的定义,一般res中默认只有layout.main.xml, drawable.xxx和value.string.xml,需要自己添加一些你需要的xml文件。注意:一定要添加在恰当的位置比如说array.xml就应该在value这个文件夹下。
如果确认有,再检查一下res下面所有文件是否都无报错。如果res下某一个文件报错,比如main或者AndroidManifest,也会影响其他场不能正确被引用。
如果都没有错误,再检查一下在你的主程序中是否不小心引入了android.R如下:
import android.R
如果有,请删除。
如果还不行,可以尝试一下:Project ==> Clean ==> Check your project and press OK.
再不行的话,我也就没辙了。
2012年5月4日星期五
怎样解决Android类中TabActivity已经deprecated的问题
在Android官网中有一个做Tab的sample,使用了TabActivity这个类。但在实际操作过程中,你会发现这个类现在已经被官方弃用了,程序中会有如下提示:
This class is deprecated.
New applications should use Fragments instead of this class; to continue to run on older devices, you can use the v4 support library which provides a version of the Fragment API that is compatible down to
再按照官网给出的代码运行这个本该含有几个Tab的项目时,几个Activity变成了几个独立的应用,而不是在一个应用的几个Tab里。
问题看上去是出在这个TabActivity上。(花了两天才发现不是这个问题,是在Android Manifest.xml中在每一个Activity中都加入了<intent-filter/>,修改了后只在主Activity中加这个tag就好了。)
2.装完之后,在你的project里面建立一个叫libs的文件夹,路径为XXXXX/libs,和src、res等文件夹并列的。
3.在android-sdks/extras/android/support/v4中找到android-support-v4.jar,复制到步骤2中的libs里面去。
4.在Eclipse的Package Explorer中找到XXXXX/libs/android-support-v4.jar,按右键点击Build path->Add to Build Path.
好了,现在就可以用这个更新的包里面的东东了,比如我们需要的Fragment这个类。然后我们要来看看FragmentTab.java是怎么用的。
http://wazai.net/2109
This class is deprecated.
New applications should use Fragments instead of this class; to continue to run on older devices, you can use the v4 support library which provides a version of the Fragment API that is compatible down to
DONUT.再按照官网给出的代码运行这个本该含有几个Tab的项目时,几个Activity变成了几个独立的应用,而不是在一个应用的几个Tab里。
问题看上去是出在这个TabActivity上。(花了两天才发现不是这个问题,是在Android Manifest.xml中在每一个Activity中都加入了<intent-filter/>,修改了后只在主Activity中加这个tag就好了。)
- 于是先按照程序中的提示加入@SuppressWarnings("deprecation"),以便漠视Warning。再运行——当然是没效果。
- 接着打算按照上面的建议,用Fragment来代替TabActivity,那就得先装上这个最近才更新的包android-support-v4.jar,步骤如下:
2.装完之后,在你的project里面建立一个叫libs的文件夹,路径为XXXXX/libs,和src、res等文件夹并列的。
3.在android-sdks/extras/android/support/v4中找到android-support-v4.jar,复制到步骤2中的libs里面去。
4.在Eclipse的Package Explorer中找到XXXXX/libs/android-support-v4.jar,按右键点击Build path->Add to Build Path.
好了,现在就可以用这个更新的包里面的东东了,比如我们需要的Fragment这个类。然后我们要来看看FragmentTab.java是怎么用的。
- 除了这种方法呢,还可以直接让原本继承TabActivity的类来继承爷爷Activity,具体怎么做在下面两个帖子里有介绍:
http://wazai.net/2109
2012年5月3日星期四
怎样在Android的项目中加入新的Activity Class
在开发Android的应用时,往往需要建立多个窗口,对于每个不同的界面,使用不同的Activity class会更加方便。如何在已经创造的项目中加入新的Activity Class呢?
有两种方法:第一种是用Manifest Editor,这里暂且不提;第二种是在Eclipse里创建,非常简单:
在Eclipse菜单栏里点击File->New->Class,出来一个框框,在Source Folder里选择你准备把这个class放的位置,一般是XXXX/src,package就是之前创建Project里面的package啦,比如com.example.helloworld, Name就是你要建的这个Activity,比如AlbumsActivity,然后点Finish。
接下来,就会在Eclipse的Package Explorer里找到你新建的这个Activity,打开这个java的文件写入代码。
最后,在AndroidManifest.xml里面加入新建的Activity如下:
<activity
android:name=".AlbumsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
OK.
有两种方法:第一种是用Manifest Editor,这里暂且不提;第二种是在Eclipse里创建,非常简单:
在Eclipse菜单栏里点击File->New->Class,出来一个框框,在Source Folder里选择你准备把这个class放的位置,一般是XXXX/src,package就是之前创建Project里面的package啦,比如com.example.helloworld, Name就是你要建的这个Activity,比如AlbumsActivity,然后点Finish。
接下来,就会在Eclipse的Package Explorer里找到你新建的这个Activity,打开这个java的文件写入代码。
最后,在AndroidManifest.xml里面加入新建的Activity如下:
<activity
android:name=".AlbumsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
OK.
2012年4月24日星期二
如何在Ubuntu下安装Android SDK开发Android Apps
小小折腾了一会儿,装了开发谷歌应用程式的工具。
其实网上也有很多介绍这方面的,不过很多都是旧版本的不适用,又或是Windows或者Mac的和Ubuntu还有一些小区别。
这里就记录下在Ubuntu下是怎么装的:
1.装Java JDK。这个是必须的,谷歌的应用是用Java写的,不用我多说了。
2.下载Android SDK Tools, 解压不用装。下载Android SDK Tools。
3.装Eclipse或者NetBeans,都是很常用的开发环境,这里以Eclipse为例介绍。下载Eclipse。
4.打开Eclipse。在菜单栏里Help->Install New Software。出来一个框框,按Add,又出来一个框框,填Name:Android; URL:http://dl-ssl.google.com/android/eclipse/ ,按OK。出来一个Developer Tools, 打开,有四个选项,给头两个划勾勾,然后Next,一直下去到装好,装好后会重启Eclipse。
5.在terminal里面运行之前解压的android-sdk-linux文件夹中的Tools文件夹中的android文件。即输入命令cd XXXXX/android-sdk-linux/Tools 然后./android 。出来一个框框,这个就是Android SDK Manager了。选中最新一个版本下面的所有文件(我开始没有装ARM XXX,最后无法创建AVD,错误:Unable to find a ' userdata.img' file for ABI armeabi to copy into the AVD folder),点Install X pac 。装这么多package需要消耗大量时间,请耐心等待。注:这一步也可以在Eclipse中的Windows->Android SDK Manager中完成。
6.装完之后打开Eclipse,在菜单栏里Windows->AVD Manager。出来一个框框,按New, 又出来一个框框,Name随便填,target是你新装的这个platform,Size可以随便填,比如10什么的。点Creat New AVD,然后你的AVD就出现在list里面了,再选中这个新创建的AVD点start,size可以自由选择,就可以看见一个虚拟的android出现在你电脑上了。(我在虚拟设配的过程中出现了种种问题,tools文件夹下的很多执行文件都不能用,比如出现错误:Failed to create the SD card,这都是Ubuntu位数不符配造成的,后来装了一个ia32-libs的包就好了,命令:sudo apt-get install ia32-libs)。
7.下一步就是写一个Android的Project。在Eclipse的菜单栏里File->New->Project,出来一个框框,选Android->Android Project,点下一步,接下来要填的是:Project Name: HelloAndroid ; Target: 选你装的那个 ;Application Name: Hello, Android ; Package Name: 可以填你自己的,也可以填比如com.example.helloandroid ; Activity : 默认的。最后点Finish。
8.这个时候你的Eclipse主界面中Package Explorer栏里出现了你刚建的Project,点这个,然后是src->com.example.helloandroid(就是刚刚建的包),出现了一个java程序,打开它,将默认的代码改成:
package com.example.hellowandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloandroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Anything you would like to add");
setContentView(tv);
}
}
9.在Eclipse的菜单栏里Run->Run, 大功告成~
其实网上也有很多介绍这方面的,不过很多都是旧版本的不适用,又或是Windows或者Mac的和Ubuntu还有一些小区别。
这里就记录下在Ubuntu下是怎么装的:
1.装Java JDK。这个是必须的,谷歌的应用是用Java写的,不用我多说了。
2.下载Android SDK Tools, 解压不用装。下载Android SDK Tools。
3.装Eclipse或者NetBeans,都是很常用的开发环境,这里以Eclipse为例介绍。下载Eclipse。
4.打开Eclipse。在菜单栏里Help->Install New Software。出来一个框框,按Add,又出来一个框框,填Name:Android; URL:http://dl-ssl.google.com/android/eclipse/ ,按OK。出来一个Developer Tools, 打开,有四个选项,给头两个划勾勾,然后Next,一直下去到装好,装好后会重启Eclipse。
5.在terminal里面运行之前解压的android-sdk-linux文件夹中的Tools文件夹中的android文件。即输入命令cd XXXXX/android-sdk-linux/Tools 然后./android 。出来一个框框,这个就是Android SDK Manager了。选中最新一个版本下面的所有文件(我开始没有装ARM XXX,最后无法创建AVD,错误:Unable to find a '
6.装完之后打开Eclipse,在菜单栏里Windows->AVD Manager。出来一个框框,按New, 又出来一个框框,Name随便填,target是你新装的这个platform,Size可以随便填,比如10什么的。点Creat New AVD,然后你的AVD就出现在list里面了,再选中这个新创建的AVD点start,size可以自由选择,就可以看见一个虚拟的android出现在你电脑上了。(我在虚拟设配的过程中出现了种种问题,tools文件夹下的很多执行文件都不能用,比如出现错误:Failed to create the SD card,这都是Ubuntu位数不符配造成的,后来装了一个ia32-libs的包就好了,命令:sudo apt-get install ia32-libs)。
7.下一步就是写一个Android的Project。在Eclipse的菜单栏里File->New->Project,出来一个框框,选Android->Android Project,点下一步,接下来要填的是:Project Name: HelloAndroid ; Target: 选你装的那个 ;Application Name: Hello, Android ; Package Name: 可以填你自己的,也可以填比如com.example.helloandroid ; Activity : 默认的。最后点Finish。
8.这个时候你的Eclipse主界面中Package Explorer栏里出现了你刚建的Project,点这个,然后是src->com.example.helloandroid(就是刚刚建的包),出现了一个java程序,打开它,将默认的代码改成:
package com.example.hellowandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloandroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Anything you would like to add");
setContentView(tv);
}
}
9.在Eclipse的菜单栏里Run->Run, 大功告成~
订阅:
博文 (Atom)

