Android---1---HelloWorld
开始创建第一个Android项目:HelloWorld
几乎所有的语言,刚开始学的时候所写的第一个项目就是:HelloWorld,那么如何写出第一个Android项目呢?
首先,在MyEclipse编译器中的导航栏中点击 FIle -> New -> Other -> Android -> Android Application Project ( 图1 )
此时会弹出创建Android项目的对话框。 (图2)
其中 Application Name 代表应用名称,此应用安装到手机之后会在
手机上显示该名称,这里我们填入 HelloWorld。Project Name 代表项目名称,在项目创建完
成后该名称会显示在 Eclipse 中,这里我们填入 HelloWorld(项目名通常不加空格) 。接着
Package Name 代表项目的包名,Android 系统就是通过包名来区分不同应用程序的。
接下来是几个下拉选择框,Minimum Required SDK 是指程序最低兼容的版本,我的最低版本是4.4的,
Target SDK 是指你在该目标版本上已经做过了充分的测试,系统不会再帮你在这个版本上做向前兼容的操作了
Compile With是指程序将使用哪个版本的 SDK 进行编译
之后一路狂点next就OK了。第一个HelloWorld项目就这样创建出来了。
右键点击HelloWorld -> Run As -> Android Application
图 3
这里需要用到了Android模拟器,推荐一个模拟器 BlueStacks 这个模拟器需要和 “给力助手” 一块用。
现在我们来分析一下这个Android程序:
展开HelloWorld这个项目我们会看见如图4所示的目录结构。
其中
1.src
这个目录是存放所有Java代码的地方。
2.gen
这个目录中的内容都是自动生成的,主要有一个R.java文件,在项目中添加的任何资源都会在其中生成一个相应的资源id。这个文件永远不要手动去修改它。
3.assets
这个目录用得不多,主要可以存放一些随程序打包的文件,在你的程序运行时可以动态读取到这些文件的内容。另外,如果你的程序中使用到了 WebView 加载本地网页的功能,所有网页相关的文件也都存放在这个目录下。
4.bin
这个目录你也不需要过多关注,它主要包含了一些在编译时自动产生的文件。其中
会有一个你当前项目编译好的安装包,展开 bin 目录你会看到 HelloWorld.apk,把这个
文件拷到手机上就可以直接安装了。
5.libs
如果你的项目中使用到了第三方 Jar包, 就需要把这些 Jar 包都放在 libs 目录下, 放
在这个目录下的 Jar 包都会被自动添加到构建路径里去。
6.res
这个目录下的内容就有点多了,简单点说,就是你在项目中使用到的所有图片、布
局、字符串等资源都要存放在这个目录下,前面提到的 R.java 中的内容也是根据这个目
录下的文件自动生成的。 当然这个目录下还有很多的子目录, 图片放在 drawable 目录下,
布局放在 layout 目录下,字符串放在 values 目录下,所以你不用担心会把整个 res 目录
弄得乱糟糟的。
7. AndroidManifest.xml
这是你整个 Android 项目的配置文件,你在程序中定义的所有四大组件都需要在这
个文件里注册。另外还可以在这个文件中给应用程序添加权限声明,也可以重新指定你
创建项目时指定的程序最低兼容版本和目标版本。由于这个文件以后会经常用到,我们
用到的时候再做详细说明。
8. project.properties
这个文件非常地简单,就是通过一行代码指定了编译程序时所使用的 SDK 版本。
接下来我们看一下代码:
package com.example.helloword; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
HelloWorldActivity 是继承自 Activity 的。 Activity 是 Android 系统提
供的一个活动基类,我们项目中所有的活动都必须要继承它才能拥有活动的特性。然后可以
看到 HelloWorldActivity 中有两个方法,onCreateOptionsMenu()这个方法是用于创建菜单的,
我们可以先无视它,主要看下 onCreate()方法。onCreate()方法是一个活动被创建时必定要执
行的方法。其中只有两行代码,并没有出现HelloWorld的字样,那么我们运行显示的HelloWorld在哪呢。。。
我们再点开res下的layout 会看到activity_main.xml 点开它,图5,1是布局文件图形界面2是布局文件代码界面
我们看代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.helloword.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </LinearLayout>
其中LinearLayout 是布局的一种,称作线性布局,android:orientation="vertical" 这一句表明了布局方式是垂直的。
TextView 是一个组件 ,它主要用于在界面上显示一段文字信息。
android:layout_width="wrap_content" 指定了控件的宽度
android:layout_height="wrap_content" 指定了控件的高度
android:text="@string/hello_world" 指定了控件所显示的文字信息 显示的string下名为hello_world这个标签所代表的内容
然后我们再打开values下的stirngs.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">HelloWord</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
至此,第一个项目已完成。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。