NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
  • 常用软件
  • Git仓库推荐
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
  • 常用软件
  • Git仓库推荐
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • nodejs

  • css

  • 最佳实践

  • TypeScript

  • ajax

  • JavaScript

  • 前端工程化

  • React

  • nextjs

  • Flutter

  • Vue

  • Taro

  • ReactNative

  • Android

    • 入门
      • 目录视图
        • Project
        • Android
      • 真机调试
        • ADB
        • scrcpy 投屏工具
      • 页面和布局
        • 页面Activity
        • 生命周期
        • XML布局
      • AndroidManifest.xml
  • 笔记

  • 前端
  • Android
NipGeihou
2026-08-20
目录

入门

# 目录视图

image.png image.png
  • Project :跟真实目录层级一样
  • Android :按类型分类,在 Android 开发中主流的视图方式。

# Project

  • app:
    • build:编译制品目录
    • src:源码目录
      • androidTest:测试用例
      • main:核心源代码
        • java:存放 kotlin、java 代码
        • res:资源文件、布局文件
          • drawable:图片
          • layout:布局文件目录
          • values:字符串、颜色、主题等配置
          • mipmap:应用图标文件
        • AndroidManifest.xml:应用配置文件
      • build.gradle:模块级别的构建配置
  • gradle:构建工具目录
  • build.gradle:项目级别的构建配置、
  • setting.gradle:项目设置文件,类似 POM.xml

# Android

  • kotlin+java :即 kotlin、java 代码文件

# 真机调试

  • USB 调试
  • WIFI 调试(Android11+)

# ADB

ADB,全称 Android Debug Bridge。

scoop install main/adb

常用命令

adb install {apk文件路径}

# scrcpy 投屏工具

scoop install main/scrcpy
# 连接设备
scrcpy

# 页面和布局

在传统 Android 开发中,一个页面通常由两部分组成:

  • 逻辑代码:即页面的逻辑功能,数据、交互等,一般使用 Java 或 kotlin 代码编写
  • 布局代码:通常使用 xml 布局

逻辑代码

class MainActivity : AppCompatActivity() {  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        enableEdgeToEdge()  
        // 设置当前页面的布局,类似于要加载哪个HTML文件
        // R 是自动生成的资源类,指向res/,类似于前端的@
        // 指向res/layout/activity_main(.xml)
        setContentView(R.layout.activity_main)  
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->  
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())  
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)  
            insets  
        }  
    }  
}

布局代码

<?xml version="1.0" encoding="utf-8"?>  
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:app="http://schemas.android.com/apk/res-auto"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/main"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity">  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="Hello World!"  
        app:layout_constraintBottom_toBottomOf="parent"  
        app:layout_constraintEnd_toEndOf="parent"  
        app:layout_constraintStart_toStartOf="parent"  
        app:layout_constraintTop_toTopOf="parent" />  
  
</androidx.constraintlayout.widget.ConstraintLayout>

# 页面 Activity

Android 中页面称为 Activity ,Activity 类必须继承 AppCompatActivity :

  • 对 Material Design 设计规范的支持
  • 向后兼容旧版 Android 系统
  • 集成 ActionBar

# 生命周期

  • onCreate:当 Activity 第一次被创建时调用,代码中必须执行 super.onCreate(savedInstanceState)

# XML 布局

存放位置: /res/layout

# AndroidManifest.xml

向 Android 系统声明应用的 身份信息 、 组件清单 ,可理解为备案文件。

  • 声明应用包含哪些组件(Activity、Service、Receiver、Provide)
  • 申请运行所需权限(如网络访问、相机使用),以前的版本在这里申请了就可以用,但新版使用敏感权限时需要用户动态授权。
  • 指定应用图标、名称、版本号
<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools">  
  
    <application  
        android:allowBackup="true"  
        android:dataExtractionRules="@xml/data_extraction_rules"  
        android:fullBackupContent="@xml/backup_rules"  
        android:icon="@mipmap/ic_launcher"  
        android:label="@string/app_name"  
        android:roundIcon="@mipmap/ic_launcher_round"  
        android:supportsRtl="true"  
        android:theme="@style/Theme.MyApplication">  
        <activity  
            android:name=".MainActivity"  
            android:exported="true"  
            android:windowSoftInputMode="adjustResize">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application>  
  
</manifest>

跟微信小程序类似,每个页面 (activity) 都需要注册

  • uses-permission :权限声明,标签需要在 application 上方
    • 参考: <uses-permission android:name="android.permission.INTERNET" />
  • application
    • android:icon:图标
    • android:label:名称
    • android:theme:主题
    • 子标签 activity :application 下
      • android:name:类名
      • 子标签 intent-filter :意图过滤器
        • 作用:告诉系统哪些 intent 可以触发当前 activity, <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> 表示为 app 第一启动页
上次更新: 2026/08/20, 18:03:47
React Native - 开始
组件库

← React Native - 开始 组件库→

最近更新
01
Kotlin - 入门
08-12
02
React Native - 开始
08-12
03
3D打印机箱IO挡板
07-24
更多文章>
Theme by Vdoing | Copyright © 2018-2026 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式