源码教程 2025年06月7日
0 收藏 0 点赞 194 浏览 7581 个字
摘要 :

创建 HelloWorld 工程 启动 Android Studio,依次选择 File –> New –> New Project,将会出现如图 1 所示的界面。在 Application name 中输入项目名称……

创建 HelloWorld 工程

启动 Android Studio,依次选择 File –> New –> New Project,将会出现如图 1 所示的界面。在 Application name 中输入项目名称“HelloWorld”,在 Company Domain 中输入“android.introduction”,系统会自动生成包名为“introduction.Android.helloWorld”。

通过Android Studio创建第一个Android应用

Project Location 指定工程文件存放的位置。单击“Next”按钮,出现如图 2 所示的界面,用于选择应用运行的系统版本。选择运行平台为“Android 7.0”。

通过Android Studio创建第一个Android应用

再次单击“Next”按钮,进入创建 Activity 界面,如图 3 所示。该界面可以添加多种 Activity 的模板,本次添加一个基本的 Activity 即可,选择“Basic Activity”。

通过Android Studio创建第一个Android应用

单击“Next”按钮,进入如图 4 所示的界面,指定 Activity 的相关信息,例如 Activity 的名字、布局文件的名字、菜单资源的名字以及 Activity 上显示的标题。此处使用默认设置,不做更改。

通过Android Studio创建第一个Android应用

设置完成后,单击“Finish”按钮完成工程的创建。

Android Studio 会根据刚才指定的相关信息生成相关模板代码,用户无须编写任何一行代码,该工程就可以运行。按 Shift+F10 快捷键,选择要运行的 AVD,可查看运行效果,如图 5 所示。

通过Android Studio创建第一个Android应用

相关代码

双击 HelloWorld 工程中的 MainActivity.java,该文件中已有程序代码如下:

  1. package introduction.android.helloworld;

  2. import android.os.Bundle;

  3. import android.support.design.widget.FloatingActionButton;

  4. import android.support.design.widget.Snackbar;

  5. import android.support.v7.app.AppCompatActivity;

  6. import android.support.v7.widget.Toolbar;

  7. import android.view.View;

  8. import android.view.Menu;

  9. import android.view.MenuItem;

  10. public class MainActivity extends AppCompatActivity {

  11.     @Override

  12.     protected void onCreate(Bundle savedInstanceState) {

  13.         super.onCreate(savedInstanceState);

  14.         setContentView(R.layout.activity_main);

  15.         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

  16.         setSupportActionBar(toolbar);

  17.         FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

  18.         fab.setOnClickListener(new View.OnClickListener() {

  19.             @Override

  20.             public void onClick(View view) {

  21.                 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)

  22.                         .setAction("Action", null).show();

  23.             }

  24.         });

  25.     }

  26.     @Override

  27.     public boolean onCreateOptionsMenu(Menu menu) {

  28.         // Inflate the menu; this adds items to the action bar if it is present.

  29.         getMenuInflater().inflate(R.menu.menu_main, menu);

  30.         return true;

  31.     }

  32.     @Override

  33.     public boolean onOptionsItemSelected(MenuItem item) {

  34.         // Handle action bar item clicks here. The action bar will

  35.         // automatically handle clicks on the Home/Up button, so long

  36.         // as you specify a parent activity in AndroidManifest.xml.

  37.         int id = item.getItemId();

  38.         //noinspection SimplifiableIfStatement

  39.         if (id == R.id.action_settings) {

  40.             return true;

  41.         }

  42.         return super.onOptionsItemSelected(item);

  43.     }

  44. }

MainActivity.java 中的代码比较简单,表明类 MainActivity 继承了 AppCompatActivity 类,并重写了 onCreate() 方法。

AppCompatActivity 类是 Android Studio 中默认的构建自定义 Activity 的模板类,与 Eclipse+ADT 环境中默认使用的 Activity 相比,AppCompatActivity 提供了对工具栏 ToolBar 的支持。相关代码如下:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

在 MainActivity 的 onCreate() 方法体中调用了父类的 onCreate() 方法,然后调用 setContentView() 方法显示视图界面。Android 工程中使用 XML 文件来设计视图界面,R.layout.activity_main 是 Android 工程中默认的布局文件的名字,即 activity_main.xml。

Activity_main.xml 的内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <android.support.design.widget.CoordinatorLayout

  3. xmlns:android="http://schemas.android.com/apk/res/android"

  4. xmlns:app="http://schemas.android.com/apk/res-auto"

  5. xmlns:tools="http://schemas.android.com/tools"

  6. android:layout_width="match_parent"

  7. android:layout_height="match_parent"

  8. tools:context="introduction.android.helloworld.MainActivity">

  9. <android.support.design.widget.AppBarLayout

  10. android:layout_width="match_parent"

  11. android:layout_height="wrap_content"

  12. android:theme="@style/AppTheme.AppBarOverlay">

  13. <android.support.v7.widget.Toolbar

  14. android:id="@+id/toolbar"

  15. android:layout_width="match_parent"

  16. android:layout_height="?attr/actionBarSize"

  17. android:background="?attr/colorPrimary"

  18. app:popupTheme="@style/AppTheme.PopupOverlay" />

  19. </android.support.design.widget.AppBarLayout>

  20. <include layout="@layout/content_main" />

  21. <android.support.design.widget.FloatingActionButton

  22. android:id="@+id/fab"

  23. android:layout_width="wrap_content"

  24. android:layout_height="wrap_content"

  25. android:layout_gravity="bottom|end"

  26. android:layout_margin="@dimen/fab_margin"

  27. app:srcCompat="@android:drawable/ic_dialog_email" />

  28. </android.support.design.widget.CoordinatorLayout>

CoordinatorLayout 布局是 support v7 系统新增的布局,具有便于调度协调子布局的特点。该布局可看作是增强版的 FrameLayout,通常与 ToolBar 和 FloatingActionButton 合用。 ToolBar 是图 5 中显示 HelloWorld 的蓝色工具栏,具有承载系统菜单的功能。布局相关代码如下:

  1. <android.support.design.widget.AppBarLayout

  2. android:layout_width="match_parent"

  3. android:layout_height="wrap_content"

  4. android:theme="@style/AppTheme.AppBarOverlay">

  5. <android.support.v7.widget.Toolbar

  6. android:id="@+id/toolbar"

  7. android:layout_width="match_parent"

  8. android:layout_height="?attr/actionBarSize"

  9. android:background="?attr/colorPrimary"

  10. app:popupTheme="@style/AppTheme.PopupOverlay" />

  11. </android.support.design.widget.AppBarLayout>

FloatingActionButton 是图 5 中右下侧的邮箱图标的按钮,布局相关代码如下:

  1. <android.support.design.widget.FloatingActionButton

  2. android:id="@+id/fab"

  3. android:layout_width="wrap_content"

  4. android:layout_height="wrap_content"

  5. android:layout_gravity="bottom|end"

  6. android:layout_margin="@dimen/fab_margin"

  7. app:srcCompat="@android:drawable/ic_dialog_email" />

在 MainActivity.java 中,FloatingActionButton 的事件处理代码为:

  1. FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

  2. fab.setOnClickListener(new View.OnClickListener() {

  3. @Override

  4. public void onClick(View view) {

  5. Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)

  6. .setAction("Action", null).show();

  7. }

  8. });

该代码实现的功能是,当点击按钮时,显示 "Replace with your own action"。

<include layout ="@layout/content_main" />

这行代码将 content_main.xml 的布局嵌入 activity_main 布局中。content_main.xml 的代码为:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <android.support.constraint.ConstraintLayout

  3. xmlns:android="http://schemas.android.com/apk/res/android"

  4. xmlns:app="http://schemas.android.com/apk/res-auto"

  5. xmlns:tools="http://schemas.android.com/tools"

  6. android:layout_width="match_parent"

  7. android:layout_height="match_parent"

  8. app:layout_behavior="A@string/appbar_scrolling_view_behavior"

  9. tools:context="introduction.android.helloworld.MainActivity"

  10. tools:showIn="@layout/activity_main">

  11. <TextView

  12. android:layout_width="wrap_content"

  13. android:layout_height="wrap_content"

  14. android:text="Hello World!"

  15. app:layout_constraintBottom_toBottomOf="parent"

  16. app:layout_constraintLeft_toLeftOf="parent"

  17. app:layout_constraintRight_toRightOf="parent"

  18. app:layout_constraintTop_toTopOf="parent" />

  19. </android.support.constraint.ConstraintLayout>

该文件中的代码表示当前的布局文件使用 LinearLayout 布局,该布局中仅有一个 TextView 组件用于显示信息,显示的内容为 "Hello World!"。

Android Studio 鼓励用户将所有组件放置到 content_main.xml 中,而对 activity_main 中的代码尽量不做修改。


为了简化代码,降低阅读难度,在本教程的范例程序代码中,除非需要用到工具栏和悬浮按钮,其余都会将 .java 文件和 .xml 文件中的 ToolBar 和 FloatingActionButton 的相关代码移除掉,并且直接使用单个布局文件搭建界面,避免使用 include 将一个布局嵌入另一个布局中。

工程文件结构解析

没有书写一句程序代码,一个 Android 应用便创建成功了,但是这只是一个简单的 Android 应用,要创建更多的 Android 应用,还要详细地了解 Android 应用程序结构。 Android Studio 的 Project 工程文件结构如图 6 所示。

通过Android Studio创建第一个Android应用

主要目录和作用:

名称 作用
.gradle目录 Gradle在构建工程的过程中生成的文件
.idea目录 Android Studio生成的工程配置文件,类似Eclipse的project.properties
build目录 相当于Eclipse工程的bin目录,用于存放生成的文件,包括APK
gradle目录 用于存放Gradle构建工具系统的JAR和Wrapper等,以及配置文件
External Libraries 工程依赖的LIB文件,如SDK等
app目录 Android Studio创建工程中的一个Module,是程序开发者的主要工作目录

app目录下的结构如图 7 所示:

通过Android Studio创建第一个Android应用

下面分别介绍各个目录或文件的作用:

目录/文件 作用
src 包含应用程序的所有源代码。在 src 用的 Activity,MainActivity.java 就是在创建项目的时候创建的一个 Activity,在 Activity 中可以编写控制 View 的逻辑。
build source 包中有一个 "R.java" 文件。R 类中包含 4 个静态内部类:attr、drawable、layout 和 string,分别代表属性、图片资源、布局文件及字符串的声明。R.java 文件是资源索引类,由 Eclipse 自动生成,开发者不用去修改和维护里面的内容,但是这个文件却非常有用,它和 res 文件夹紧密相连,对 res 下资源的操作都会导致 R.java 文件的重新编译。R.java 中定义的常量类也可以间接帮助 Activity 完成对资源的应用。Android 这样设计的好处是使得复杂的资源通过专门的类来管理而让程序中的代码变得整齐、强壮,并且减少程序出错和 bug 的产生。
assets 通常放置一些原始资源文件,会在 Android 打包的时候原封不动地一起打包,安装时会直接解压到对应的 Android 打包的时候原封不动地一起打包,安装时会直接解压到对应的 assets 目录中。这里通常放置一些项目中用到的多媒体资源等。
res 通常放置的是 Android 要用到的各种程序资源。其中,常见的子文件夹有 drawable、layout、values 等。其中,drawable 目录放置应用到的图片资源;layout 目录放置一些与 UI 相关的布局文件,都是以 XML 文件方式保存;values 目录中放置的是一些字符串、数组、颜色、样式和动画等资源,values 目录中的每一个文件都会转化成 R.java 中的一个静态类,文件中的每一个资源都会转化成 R.java 中对应静态类的静态整型常量,这样 Activity 中通过一个解析器就可以获取对应的资源。
AndroidManifest.xml 是整个项目的配置资源,里面配置的内容包括当前应用程序所在的包、应用程序中的 Activity、应用程序的访问权限等。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/867.html

管理员

相关推荐
2025-07-05

对于一些使用WordPress进行外贸建站的商家来说,大部分人会通过在WordPress中添加JS代码和CSS样式表…

701
2025-07-05

当商家遇到WordPress独立站改版或者域名到期等问题时,不免会涉及到WordPress域名的更改,那么这一…

715
2025-07-05

用户在使用WooCommerce进行跨境电商独立站搭建工作时,有可能会借助WooCommerce短代码实现更加醒目…

307
2025-07-05

随着外贸建站行业的不断深入发展,WordPress的多语言功能也显得越来越重要,一个具有多语言的独立站…

1,039
2025-07-05

WooCommerce作为WordPress外贸建站生态的一部分,WooCommerce运费设置是商家在建站过程中不可忽视的…

835
2025-07-05

在外贸建站的过程中,有些商家会选择使用WordPress幻灯片为网站页面增加一定的动感和可观性,进而提…

723
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号