Hello Android
继上篇简单介绍了一下Android系统,本文扼要地讲一下如何创建一个Android的程序Hello Android。
关于Android的开发平台的搭建,园子里很多前辈都有讲过了,这里简单的提一下。
首先要安装JDK 5 or 6, Eclipse 3.4 or 3.5, 以及Eclipse的插件Android Development Tools (ADT) Plugin, 最新版应该是ADT 0.9.7, 这里有详细的安装步骤。然后去这里下载Android SDK,装完了以后可以把SDK安装目录下tools目录路径加入PATH环境变量,如C:\android-sdk-windows\tools, 它包含一些实用的工具,如模拟器Emulator,Android Debug Bridge (adb)等,这样的话就可以通过命令行运行这些工具。最后一步就是通过the Android SDK and AVD Manager去安装一些SDK的组件,如USB Driver for Windows,Google APIs,Samples, Docs等, 具体步骤可参见官方文档。
在创建第一个项目前,需要创建一个虚拟设备,用来模拟运行你创建的程序。
打开Eclipse,菜单Window->Android SDK And AVD Manager, 出来一个对话框,选中Virtual Device,右边点击New,在新建对话框中输入名字如my_avd,选择Target即模拟器要运行的Android SDK版本,如Android 2.1。其它的设置如SD卡,分辨率可以自行设置或者留空,点击Create AVD这样一个虚拟设备就创建好了,如下图:
接下来创建Hello Android项目。
点击File->New->Android Project, 出来一个对话框,填写如下几项
Project name: HelloAndroid ----Eclipse项目名称 Application name: Hello,Android -----在模拟器上显示的应用程序的名字 Package name: com.benjamin.helloandroid ----包的命名空间 Create Activity: HelloAndroid ------我们要创建的Activity class的名字,它是继承自android.app.Activity。 Build Target: Android 2.1---------您的应用程序所要运行的目标平台
点击完成,这样Hello Android项目就创建完成了。
我们来看一下它的项目结构和相关代码:
可以看到HelloAndroid Activity继承自android.app.Activity, onCreate方法会在这个Activity启动时被调用,所以一般会把生成UI和初始化的操作放在这里。
接下来在onCreate方法里面添加三行代码:
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
并注释下面这一行代码:
//setContentView(R.layout.main);
并导入相应的包,导入包的快捷键 Ctrl-Shift-O
import android.widget.TextView;
Android应用程序用户界面是由一系列UI元素组成,如文本框,按钮等,它们都继承自View类。这里创建一个TextView,类似于Label用来显示文本的,并设置它显示的文本"Hello, Android"。setContentView()方法设置当前Activity内容即为刚才创建的TextView。
运行程序就会在Android模拟器上看到输出结果。
前面我们的UI元素是在代码里创建的,但这样的话可能会忘记关联各个View,一点小的改动也会引起布局的错误。所以Google推荐的方法是将UI的创建放在基于XML的布局文件里,其实Flex, Silverlight也都是这样的。
在刚才创建项目的时候,Eclipse已经帮我们创建一个这样的文件HelloAndroid\res\layout\main.xml, 如下所示:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/>
layout_width: 表示这个TextView横向填充的方式,fill_parent表示填满整个屏幕宽度,wrap_content则根据文本内容的宽度显示。
layout_height:与layout_width类似,只不过是竖向。
text:表示TextView要显示的内容。"@string/hello" 这种表示读取资源文件HelloAndroid\res\values\strings.xml中hello的字符串的值,这种方式让我们很方便地实现国际化多语言。
这里我们修改一下hello字符串的值:
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="hello">Hello Android, this is Benjamin!</string><string name="app_name">Hello, Android</string>
</resources>
然后返回到HelloAndroid.java,在onCreate方法中删除之前添加的三行创建TextView的代码,取消注释setContentView这行代码后的onCreate方法如下:
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}
这里我们调用setContentView不再是传递一个View的对象,而是一个布局资源的引用。当我们创建一个布局文件的时候,Eclipse会根据这个布局资源文件自动在gen包下创建资源文件的索引类R.java, 根据它我们就可以快速地引用我们定义的资源文件,可以看到每增加或者修改一个资源文件,R.java就会由Eclipse自动生成,所以我们不能自己手动编辑它,R.layout.main这个对象就代表引用资源文件main.xml。
运行一下可以看到结果如下:
Hope this helps!
转载于:https://www.cnblogs.com/mobilegeek/archive/2010/07/10/Hello-Android.html
Hello Android相关推荐
- Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...
- Android 的NDK的Makefile编写
Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...
- Android Animation (安卓动画)概念简介
Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...
- 基于Android和SpringBoot的购物App
(Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...
- Android数据持久化:SharePreference
SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...
- Android数据持久化:文件存储
数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...
- Android Studio中RecycerView依赖库加载问题
依赖包导入思考: 参考资料:recycleview导包问题 打开修改本项目中的build.gradle; 切勿着急添加包,应当提前查看其中的版本号(因为加载的v7包要和其版本保持一致性): 例如: 因 ...
- Android布局优化之include、merge、ViewStub
include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...
- Android动画之帧动画和补间动画
Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...
- Android系统的启动过程
Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...
最新文章
- 阿里程序员连续两次绩效3.25!大老板威胁要开除他!还不给赔偿金!问大家该如何维权?...
- 人人都能学会的python编程教程15:高级特性2
- IEA:截止2015年全球太阳能光伏装机累计超228GW
- 多项式拟合缺点_曲线拟合方法的选择
- hmm 求隐藏序列_结巴分词3--基于汉字成词能力的HMM模型识别未登录词
- How is Organization Unit currency attribute merged into pricing document
- 数据脱敏平台-大数据时代的隐私保护利器
- PHP点歌插件,斗鱼弹幕点歌插件_小葫芦社区_小葫芦插件交流 - Powered by Discuz!
- 如何部署林根域、子域和域树
- 集成unittest与html测试报告
- Git(9)-- 远程仓库的使用
- php+mysql+json android 连接wamp
- 2021年江苏省高考成绩什么时候可以查询,2021年江苏高考成绩什么时候出来 成绩查询时间...
- 随机效应估算与固定效应估算_纯电动汽车的电池价格,可以怎么估算?
- 锐捷服务器虚拟化技术_锐捷核心交换机VSU虚拟化配置
- C# 计算农历日期方法
- 【人机】确认框中的“取消/确定”要如何设计呢?
- 富爸爸穷爸爸 (全球最佳财商教育系列)——2019年04月18日15:25:56
- The server encountered an internal error () that prevented it from fulfilling this request.
- 如何查看服务器证书过期时间,如何看ssl证书过期
热门文章
- WordPress主题-RiPro子主题|小八子主题v8.0版
- 某云商城发卡网源码 带视频教程
- IE每打开一个网页跳出网页处理
- js 数字,金额 用逗号 隔开。数字格式化
- css 多栏文字流 css two columns text flow
- Hessian局部线性嵌入算法(HLLE)——matlab实现
- 博弈——巴什博弈(hdu1846,2188,2897)
- ubuntu 14.04 LTS(64bit)源配置
- 【今日CS 视觉论文速览】Fri, 18 Jan 2019
- 【C++基础学习】关于C++静态成员函数和变量