欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android开发学习(3)Hello Android!

程序员文章站 2024-03-24 09:24:46
...

在这里,我们简单介绍如何快速搭建我们的第一个安卓程序,熟悉安卓的常规开发模式。

创建项目

得力于idea的集成,我们可以快速搭建一套规范的安卓程序:
步骤:File -> New -> Project -> Android New Application
图像说明:
确定App名字
Android开发学习(3)Hello Android!

选择安卓版本
Android开发学习(3)Hello Android!

创建空活动
Android开发学习(3)Hello Android!

最终确定–漫长等待
Android开发学习(3)Hello Android!

文件结构:
Android开发学习(3)Hello Android!

序号 文件夹、文件和说明
1 src:包含项目中所有的.java源文件,默认情况下,它包括一个 MainActivity.java源文件对应的活动类,当应用程序通过应用图标启动时,将运行它。
2 gen:这包含由编译器生成的.R文件,引用了所有项目中的资源。该文件不能被修改。
3 bin:这个文件夹包含Android由APT构建的.apk包文件,以及运行Android应用程序所需要的其他所有东西。
4 res/drawable-hdpi:这个目录下包括所有的为高密度屏幕设计所需的drawable对象。
5 res/layout:这个目录存放由于定义用户界面的文件。
6 res/values:这个目录存放各种各样的包含一系列资源的XML文件,比如字符串和颜色的定义。
7 AndroidManifest.xml:这个是应用程序的清单文件,描述了应用程序的基础特性,定义它的各种组件。

创建活动

主要活动文件

主要活动代码在HelloActivity.java的Java文件中。这是实际的应用程序文件,将被转化为Dalvik可执行文件并运行。

package com.markmoney.xvshu.markmoney;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.markmoney.xvshu.markmoney.service.HelloService;

/**
 * Created by xvshu on 2017/7/26.
 */
public class HelloActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到按钮实例
        Button hellobtn = (Button)findViewById(R.id.hellobutton);
        //设置监听按钮点击事件
        hellobtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //得到textview实例
                TextView hellotv = (TextView)findViewById(R.id.hellotextView);
                //弹出Toast提示按钮被点击了
                Toast.makeText(HelloActivity.this,"Clicked",Toast.LENGTH_SHORT).show();
                //读取strings.xml定义的interact_message信息并写到textview上
                hellotv.setText(R.string.interact_message);
            }
        });
    }



}

这里,R.layout.activity_main引用自res/layout目录下的activity_main.xml文件。onCreate()是活动被加载之后众多被调用的方法之一。

Manifest文件

无论你开发什么组件用作应用程序中的一部分,都需要在应用程序项目根目录下的manifest.xml文件中声明所有的组件。这个文件是Android操作系统与你的应用程序之间的接口,因此,如果没有在这个文件中声明你的组件,将无法被操作系统所识别。举个例子,一个默认的清单文件看起来如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.markmoney.xvshu.markmoney">

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
        <activity
                android:name=".HelloActivity"
                android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>


</manifest>

这里,…标签之间是应用程序相关的组件。andnroid:icon属性指出位于res/drawable-hdpi下面的应用程序图标。这个应用使用drawable文件夹下名为ic_launcher.png的图片。

标签用于指定一个活动,android:name属性指定一个Activity类子类的全名。android:label属性指定用于活动名称的字符串。可以使用标签来指定多个活动。

意图过滤器的action被命名为android.intent.action.MAIN,表明这个活动被用做应用程序的入口。意图过滤器的category被命名为android.intent.category.LAUNCHER,表明应用程序可以通过设备启动器的图标来启动。

@tring指的是strings.xml(将在后面介绍)。因此,@string/app_name指的是定义在strings.xml中的app_name,实际为”Hello World”。类似的,应用中的其他字符串也很流行。

下面是你的清单文件中将用到的标签,用于指定不同的Android应用程序组件:

  • 活动元素
  • 服务元素
  • 广播接收器元素
  • 内容提供者元素

Strings 文件

strings.xml文件在res/value文件夹下,它包含应用程序使用到的所有文本。例如,按钮、标签的名称,默认文本,以及其他相似的strings。

<resources>
    <string name="app_name">MarkMoney</string>

    <!-- Strings related to login -->
    <string name="prompt_email">Email</string>
    <string name="prompt_password">Password (optional)</string>
    <string name="action_sign_in">Sign in or register</string>
    <string name="action_sign_in_short">Sign in</string>
    <string name="error_invalid_email">This email address is invalid</string>
    <string name="error_invalid_password">This password is too short</string>
    <string name="error_incorrect_password">This password is incorrect</string>
    <string name="error_field_required">This field is required</string>
    <string name="permission_rationale">"Contacts permissions are needed for providing email completions."</string>

    <string name="default_message">"Hello Android!"</string>
    <string name="button_send">"say hello"</string>

    <string name="interact_message">You just clicked on the Button!</string>


</resources>

R 文件

gen/com.example.helloworld/R.java文件是活动的Java文件,如MainActivity.java的和资源如strings.xml之间的胶水。这是一个自动生成的文件,不要修改R.java文件的内容。

Layout 文件

main.xml是一个在res/layout目录下的layout文件。当应用程序构建它的界面时被引用。你将非常频繁的修改这个文件来改变应用程序的布局。在”Hello Android”应用程序中,这个文件具有的布局,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello Android 实例"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:textSize="30dp" />

    <TextView
            android:layout_width="fill_parent"
            android:layout_height="180dp"
            android:text="@string/default_message"
            android:id="@+id/hellotextView" android:textColor="#00ff00" android:gravity="center"/>


    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_send"
            android:id="@+id/hellobutton" android:layout_gravity="center"/>

</LinearLayout>

这是一个简单的RelativeLayout的示例,TextView是一个Android的控件用于构建用户图形界面。它包含有许多不同的属性,诸如android:layout_width, android:layout_height等用来设置它的宽度和高度等。@string指的是res/values文件夹下的strings.xml文件。因此,@string/hello_world指的是定义在strings.xml中的名为hello的字符串:”Hello Android!”。

打包

调出打包窗口
Android开发学习(3)Hello Android!

配置签名
Android开发学习(3)Hello Android!

如果是第一次,先选择【create new】新建一个签名

选择路径
Android开发学习(3)Hello Android!

拿着apk包,可以安装到自己的手机,试试吧,第一个安卓程序就这么简单的安卓程序就这么诞生了。

总结:

一个简单的安卓程序,帮助我们了解了安卓基本的开发模型,也帮助我们熟悉了移动端的工作方式,这个简单的程序帮我们打开了一个移动开发的大门,也希望越来越多的小伙伴加入进来。

相关标签: android idea