文章目录
- 一. Android总览
- 1. 系统架构
- 2. 开发环境
- 3. 在红米手机上运行
- 4. 项目资源详解
- 4.1 整体结构
- 4.2 res文件
- 4.3 build.gradle文件
- 二. Activity
- 0. 常用方法小结
- 1. 创建一个Activity
一. Android总览
1. 系统架构
应用层:所有安装在手机上的应用程序
应用框架层:提供了构建应用程序时可能用到的各种API
系统运行库层:通过一些C/C++库为Android系统提供了主要的特性支持。如SQLite,OpenGL|ES
Linux内核层:Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。
2. 开发环境
Gradle项目:可以先下载到本地,后边建立项目快一点
Gradle配置教学
Gradle理论知识
3. 在红米手机上运行
连接usb-设置-我的设备-全部参数-连点6次版本号-返回首页,更多设置-开发者选项
4. 项目资源详解
4.1 整体结构
4.2 res文件
drawable 放图片
mipmap 放应用图标
values 字符串、样式、颜色
layout 布局
xml 一些其他配置规则,如数据提取的规则等
引用规则
4.3 build.gradle文件
二. Activity
0. 常用方法小结
menuInflater.inflate(R.menu.main,menu)
inflate()方法接收两个参数:第一个参数用于指定我们通过哪一个资源文件来创建菜单,这
里当然是传入R.menu.main;第二个参数用于指定我们的菜单项将添加到哪一个Menu对象当
中,这里直接使用onCreateOptionsMenu()方法中传入的menu参数。最后给这个方法返回
true,表示允许创建的菜单显示出来,如果返回了false,创建的菜单将无法显示。
布局常用参数
match_parent:表示让当前控件的大小和父布局的大小一样,即由父布局来决定当前控件的大小。
wrap_content:表示让当前控件的大小刚好能够包含里面的内容,即由控件内容决定当前控件的大小。
1. 创建一个Activity
选择No Activity方式创建一个空的Project
切换成project模式,到主目录下创建一个kt文件
写Activity代码:
写一个主类 + res里面的布局文件 + AndroidMainfest.xml注册
(创建+toast+menu菜单栏使用)
package com.example.myactivity
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class FirstActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.mylayout)
//给按钮设置点击事件
val button1:Button = findViewById(R.id.button1)
button1.setOnClickListener{
Toast.makeText(this,"This is my first attempt",Toast.LENGTH_SHORT).show()
}
}
//menu菜单选择栏
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main,menu)
return true
}
//响应事件
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.add_item -> Toast.makeText(this,"Add",Toast.LENGTH_SHORT).show()
R.id.remove_item -> Toast.makeText(this,"remove",Toast.LENGTH_SHORT).show()
}
return true
}
//销毁当前activity
val button2:Button = findViewById(R.id.button2)
button2.setOnClickListener{
finish()
}
}
<?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.MyActivity"
tools:targetApi="31">
<activity android:name=".FirstActivity"
android:label="FirstActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
menu菜单栏需要在res目录下建立menu文件夹
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="Add"/>
<item
android:id="@+id/remove_item"
android:title="Remove"/>
</menu>