跟着动脑学院学习Android 开发基础

跟着动脑学院up主学习Android开发,记录学习笔记

2022 最新 Android 基础教程,从开发入门到项目实战,看它就够了,更新中_哔哩哔哩_bilibili

(弱弱地说一句,绝大部分内容都是up主为我们准备好的资料里摘抄下来的)

下面正式开始我们初学者之旅

2.2        App的工程结构

2.2.1 App工程目录结构

App工程分为两个层次,第一个层次是项目;

另一个层次是模块,为模块对应实际的App,模块依附于项目,每个项目至少有一个模块,也能拥有多个模块

该项目下面有两个分类:一个是app(代表app模块);另一个是Gradle Scripts

app下面又有3个子目录

  • manifests子目录,下面只有一个XML文件,即AndroidManifest.xml,它是App的运行配置文 件。
  • java子目录,下面有3个com.example.myapp包,其中第一个包存放当前模块的Java源代码,后 面两个包存放测试用的Java代码。
  • res子目录,存放当前模块的资源文件。res下面又有4个子目录:
    • drawable目录存放图形描述文件与图片文件。
    • layout目录存放App页面的布局文件。
    • mipmap目录存放App的启动图标。
    • values目录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常 量colors.xml、样式风格定义styles.xml等。

Gradle Scripts下面主要是工程的编译配置文件,主要有:

(1)build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则。

(2)proguard-rules.pro,该文件用于描述Java代码的混淆规则。

(3)gradle.properties,该文件用于配置编译工程的命令行参数,一般无须改动。

(4)settings.gradle,该文件配置了需要编译哪些模块。初始内容为include ':app',表示只编译app模 块。

(5)local.properties,项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境 配置,包括SDK的本地路径、NDK的本地路径等。

2.2.2 编译配置文件build.gradle 

新创建的App项目默认有两个build.gradle,一个是Project项目级别的build.gradle;另一个是Module 模块级别的build.gradle。

 

  • 项目级别的build.gradle指定了当前项目的总体编译规则
  • 模块级别的build.gradle对应于具体模块,每个模块都有自己的build.gradle,它指定了当前模块的详细 编译规则
  • 注意每个版本的Android Studio都有对应的Gradle版本,只有二者的版本正确对应,App工程才能成功编译。

2.2.3 运行配置文件AndroidManifest.xml (清单文件)

 manifest下 面有个application节点,简单说说这几个属性如下:

android:allowBackup,是否允许应用备份。
允许用户备份系统应用和第三方应用的apk安装包和应用数据,
以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行
对应用数据的备份和恢复。为true表示允许,为false则表示不允许。
android:icon,指定App在手机屏幕上显示的图标。
android:label,指定App在手机屏幕上显示的名称。
android:roundIcon,指定App的圆角图标。
android:supportsRtl,是否支持阿拉伯语/波斯语这种从右往左的文字排列顺序。为true表示支
持,为false则表示不支持。
android:theme,指定App的显示风格。

<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">

 application下面还有个activity节点,它是活动页面的注册声明,只有在AndroidManifest.xml中 正确配置了activity节点,才能在运行时访问对应的活动页面。

<!-- activity节点指定了该App拥有的活动页面信息,其中拥有
android.intent.action.MAIN的activity说明它是入口页面 -->
<activity android:name=".Main2Activity"></activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

 初始配置的MainActivity正是App的默认 主页,之所以说该页面是App主页,是因为它的activity节点内部还配置了以下的过滤信息:

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

 例如:活动DetailActivity不是主页面(入口页面),MainActivity是主页面

  <activity
            android:name=".DetailActivity"
            android:exported="false" >
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

Android Studio采用Log工具打印日志

有别于System.out.println,Log工具将各类日志划分为5个等级,每个等级的重要性是不一样的,这些 日志等级按照从高到低的顺序依次说明如下:

Log.e:表示错误信息,比如可能导致程序崩溃的异常。

Log.w:表示警告信息。

Log.i:表示一般消息。

Log.d:表示调试信息,可把程序运行时的变量值打印出来,方便跟踪调试。

Log.v:表示冗余信息。

2.3  书写规范 

Android Studio每次创 建新项目,除了生成默认的首页布局activity_main.xml之外,还会生成与其对应的代码文件 MainActivity.java,用于实现复杂的业务逻辑。

在XML文件中定义界面布局,只是静态界面,XML文件自身无法动态刷新某个控件。倘若要求在App运行时修改 文字内容,动态变更网页内容,就需要交给App后台的Java代码实现业务逻辑。

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
  1. 应用程序启动时,系统创建MainActivity的实例。
  2. 调用MainActivityonCreate方法。
  3. onCreate方法中,通过super.onCreate进行初始化。
  4. 通过setContentView设置Activity的布局。
  5. Activity根据activity_main.xml布局文件创建相应的UI。

这里就先简单的了解一下这些信息。 

2.4App的活动页面

2.4.1 快速生成页面源码

点击app,右键菜单中依次选择New→Activity→Empty View Activity

 

一旦创建好新页面,就得在合适的时候跳到该页面,假设出发页面为A,到达页面为B,那么跳转动作是 从A跳到B。由于启动App会自动打开默认主页MainActivity,因此跳跃的起点理所当然在MainActivity, 跳跃的终点则为目标页面的Activity。

如果目标页面名为MainCompatActivity,跳转代码便是下面这样的:

// 活动页面跳转,从MainActivity跳到MainCompatActivity
startActivity(new Intent(MainActivity.this, MainCompatActivity.class))

创建一个意图实例,使用setClass()方法,由当前的页面跳转到MainCompatActivity.class

 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值