Android 开发核心笔记 01

63 阅读3分钟

1️⃣ App 名称修改

✅ 步骤

第一步:创建 strings.xml

路径:res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">APP Name</string>
</resources>

第二步:在 AndroidManifest.xml 中引用

<application
    android:label="@string/app_name"
    ...>
</application>

2️⃣ 确定 Android 应用主页面 Activity

AndroidManifest.xml 中寻找 启动 Activity 定义

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

🔹 关键标志

  • android:name=".MainActivity" → 入口类名
  • intent-filter 中同时有 MAIN + LAUNCHER → 应用启动入口

3️⃣ 权限声明

权限必须在 AndroidManifest.xml 中声明。

<manifest ...>
    <!-- 网络权限 -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 外部存储权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application ...>...</application>
</manifest>

⚠️ 注意拼写:uses-permission(不是 user-permission)。


4️⃣ 启动页代码与布局的关联关系

流程:

  1. AndroidManifest.xml 中找到启动页(如 .MainActivity)。
  2. 打开该 Activity 的源码(MainActivity.java / kt)。
  3. 找到 onCreate() 方法:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);
    }
    
  4. R.layout.activity_webview 指向文件:res/layout/activity_webview.xml。 这就是代码与布局的对应关系。

5️⃣ Project 与 Module 的关系

  • 一个 Project 可以包含多个 Module
  • Module 分为两类:
    • App 类型(可运行)
      apply plugin: 'com.android.application'
      
    • Library 类型(供别的模块调用)
      apply plugin: 'com.android.library'
      

6️⃣ Project 全局配置与 Gradle 版本匹配

项目级 build.gradle 中:

buildscript {
    repositories { ... }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.0'
    }
}

gradle.properties 指定 Gradle 版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

🔗 版本对应关系文档: 👉 developer.android.google.cn/studio/rele…


7️⃣ compileSdkVersion、minSdkVersion、targetSdkVersion、buildToolsVersion

名称含义与 SDK Manager 关系
compileSdkVersion编译时使用的 SDK 版本(必须已下载)✅ 必须存在于 SDK Manager
minSdkVersion最低支持的 Android 系统版本🚫 无需下载
targetSdkVersion主要优化和测试目标版本🚫 无需下载
buildToolsVersion代码构建打包工具版本✅ 必须已下载

🔹 版本依赖关系

minSdkVersion <= targetSdkVersion <= compileSdkVersion

🔹 support library / androidx 版本需匹配 compileSdkVersion


8️⃣ 新建布局文件(layout)

步骤:

  1. app/src/main/res/layout → 右键 → New → XML → Layout XML File
  2. 文件名遵守命名规则:
    • 全小写
    • 不能包含大写字母
    • 单词间用下划线 _ 连接

示例:activity_main.xmlitem_face_card.xml


9️⃣ View 通用属性总结

属性功能
android:layout_width控件宽度
android:layout_height控件高度
android:id控件唯一 ID
android:gravity控件内容相对自身位置
android:layout_gravity控件相对父容器位置
android:background背景色或背景图

🔟 创建布局与 View 的两种方式

  1. XML 静态布局 → 推荐
  2. Java/Kotlin 动态创建 View → 部分场景(如自定义控件)

11️⃣ 常见布局种类与特性

💠 LinearLayout(线性布局)

  • 属性:android:orientation="vertical|horizontal"
  • 子 View 可用 android:layout_weight 设置宽高比例
  • 注意:方向设置后,另一方向的对齐属性(如 vertical 时的 top/bottom)会失效。

💠 RelativeLayout(相对布局)

通过相互位置约束:

  • 相对其他控件位置:
    android:layout_below="@id/title"
    android:layout_toRightOf="@id/avatar"
    
  • 相对父容器:
    android:layout_centerInParent="true"
    android:layout_alignParentBottom="true"
    

💠 FrameLayout(帧布局)

  • 子元素默认 层叠显示(后面的覆盖前面)
  • 可用 android:layout_gravity 控制位置。

💠 ConstraintLayout(约束布局)

✳️ 基本概念

通过添加约束线确定子 View 位置,可减少嵌套、提高绘制性能。

✳️ 优点
  • 减少布局嵌套,性能更高。
  • 可视化编辑强。
✳️ 缺点
  • 修改复杂,代码可读性略差。
✳️ 使用条件

Gradle 依赖:

implementation "androidx.constraintlayout:constraintlayout:2.1.4"

gradle.properties

android.useAndroidX=true
android.enableJetifier=true
✳️ 常见技巧
  • 相对父约束
  • 边距(margin/goneMargin)
  • 居中约束
  • 宽高比例
  • 链(chain)
  • 辅助工具:Guideline、Barrier、Group、Placeholder

12️⃣ 常用控件 (Views)

📝 TextView 属性示例

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="北大康复"
    android:textColor="#333333"
    android:textSize="16sp"
    android:textStyle="bold"
    android:typeface="sans"
    android:maxLines="1"
    android:ellipsize="end"
/>
属性说明
android:textColor文本颜色
android:textStyle样式:bold / normal / italic
android:textSize字号
android:singleLine单行显示(等价 maxLines=1
android:ellipsize省略号样式 (end/start/marquee)
android:maxLength限制文本长度
\n换行

✅ 总结一览

分类核心知识
App 名称更改strings.xml + Manifest label
启动页识别intent-filter: MAIN + LAUNCHER
权限声明uses-permission
代码与布局绑定setContentView(R.layout.XXX)
Project/Module 关系application vs library
Gradle 配置classpath + distributionUrl
SDK 版本理解min / target / compile / buildTools
常见布局Linear / Relative / Frame / Constraint
常见控件TextView 等基础属性
原则minSdk ≤ targetSdk ≤ compileSdk