Android(二)安卓项目结构

文章目录

      • 项目结构
      • 简单演示

在安卓了IDE、SDK和安卓虚拟设备(AVD)后,

  • new 一个安卓项目,选定SDK版本(我的是29 AndroidQ),
  • 打开新建项目的窗口后,立即修改。。\projects\项目名称\gradle\wrapper\gradle-wrapper.properties文件中的distributionUrl=file:///E:/.../本地gradle安装目录,不然它会下载一个新的。
    或者打开Build=》gradle,在右边页面的gradle projects配置当前项目为本地的gradle

项目结构

  • 下图是新建项目后的项目结构图:
    Android(二)安卓项目结构_第1张图片

  • .gradle 这个文件夹,凡是gradle项目都有,跟安卓无关

  • idea 也是跟项目无关,跟开发工具有关

  • app 开发内容主要就是在此目录内,

    • build 项目编译之后生成的文件夹,存放编译内容
    • libs 存放第三方依赖,然后在app/build.gradle文件中声明引用
    • build.gradle 重要,相当于maven的pom.xml
    • src/main/ 存放项目源码和资源的目录,可以创建的文件夹可以如下:
      Android(二)安卓项目结构_第2张图片
      • java 顾名思义,就是java类源码文件夹,比如各种Activity文件
      • res 资源文件目录,会被Android编码,之后可以在代码中通过ID识别获取
        • layout 存放页面布局xml文件
        • values 按分类存放键值对,比如strings.xml文件中的app名称其他地方直接通过app_name拿到值
      • assets 存放的资源文件不会被编码,可以通过路径直接访问到
      • AndroidManifest.xml 所有activity都要在这里配置,并且指定一个activity为首页
        其他目录
        等等
  • build 这个目录先不管

  • gradle 这个目录保存了gradle一些版本信息,比如gradle-wrapper.properties文件

  • build.gradle 重要配置文件,指定gradle仓库地址repositories等

  • External Libraries 最下面的这个,是当前项目引入的依赖


简单演示

  1. 新建一个空的项目empty
  2. 。。。\projects\empty\app\src\main\java\com\lwr\empty下新建Java类文件MainActivity,继承androidx.appcompat.app.AppCompatActivity(必须继承Activity类或者其子类)
  3. 重写 onCreate(@Nullable Bundle savedInstanceState)方法:
public class MainActivity extends AppCompatActivity {
    /**
     * 重写Activity类的onCreate方法
     */
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 设置本Activity的布局
         * R.layout.main_view 表示在/main/res/layout下的一个名为main_view.xml的布局文件
         */
        setContentView(R.layout.main_view);
    }
}
  1. 创建main_view.xml文件,定义为LinearLayout布局,但是页面内容还没写:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

LinearLayout>
  1. 既然Activity已经设置了布局文件,最后就是注册Activity,打开AndroidManifest.xml文件并修改,在application节点下添加activity节点:
  • package="com.lwr.empty"表示当前包路劲
  • android:name=".MainActivity" 引用的当前包路径下的MainActivity
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lwr.empty">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".MainActivity"
            android:label="主页">
            <intent-filter>
            	
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            intent-filter>
        activity>
        
    application>

manifest>
  1. Run app,可以看到一个空白页面。所以知道,是通过AndroidManifest.xml关联所有Activity,然后通过Activity关联layout文件。
  2. 其实,布局可以写在layout也可以写在代码中,而且页面的所有动态操作都是写在java代码中,因为没有js,类似于js的操作直接在Activity中通过java代码完成。下面深入演示一个示例。
  3. 首先,在main_view.xml中添加一个按钮:
    (android:id="@+id/btId"指定元素id为btId,这样在Activity类中才可以获取到)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="请点击我"
        />
        
LinearLayout>
  1. 然后,在Activity中通过id获取组件button,然后注册一个点击监听事件,在点击事件发生后,跳转到第二个页面:
    findViewById(R.id.?id)能通过组件id获取到所有正确的组件
    new Intent(MainActivity.this, SecondActivity.class)第一个参数是当前Activity.this,第二个参数是跳转的Activity.class
public class MainActivity extends AppCompatActivity {
    /**
     * 重写Activity类的onCreate方法
     */
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 设置本Activity的布局
         * R.layout.main_view 表示在/main/res/layout下的一个名为main_view.xml的布局文件
         */
        setContentView(R.layout.main_view);

        Button button = findViewById(R.id.btId);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}
  1. 因为SecondActivity类还没有,按之前步骤创建一个:
public class SecondActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_view);
    }
}
  1. 并且创建对应的layout

<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:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:text="这是第二个页面"
        />
LinearLayout>
  1. 最重要的,别忘了在AndroidManifest.xml中配置,否则无法识别页面:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lwr.empty">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".MainActivity"
            android:label="主页">
            <intent-filter>
                
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            intent-filter>
        activity>

        <activity
            android:name=".SecondActivity"
            android:label="第二个页面">
        activity>
    application>

manifest>
  1. 重新Run app,点击按钮,跳转成功!

你可能感兴趣的:(Android(二)安卓项目结构)