惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - MobileGeek

Swift全栈开发 App Submission Issues 番茄钟App(Pomodoro Tracker) WatchKit App Submission Issues Watch​Kit Learning Resources Scrum Planning Card How to get cocoapods work on Yosemite 如何在DigitalOcean安装Ghost Swift学习资源 Xcode 6 模拟器路径 Android AutoCompleteTextView,Spinner和ListView的使用 Android Layout 布局 Android消息提示框和对话框 Silverlight Exception: “The URI prefix is not recognized.” Silverlight4中使用WebClient类下载压缩成zip格式的图片 “Unable to start debugging. The Silverlight Developer Runtime is not installed. Please install a matching version.” 解决办法 Android Project Structure(项目结构) Introducing Android 使用Git和Repo获取Android源码
Hello Android
MobileGeek · 2010-07-10 · via 博客园 - MobileGeek

上篇简单介绍了一下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这样一个虚拟设备就创建好了,如下图:

image_2

接下来创建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项目就创建完成了。

    我们来看一下它的项目结构和相关代码:

    image

    
    
    
    

    可以看到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。

    运行一下可以看到结果如下:

    image

    Hope this helps!