最近的一个认识:绝大多数程序员都不过是Api调用攻城狮。下面开始正文。
开发环境
本文安装环境是Mac,处理器是intel的。
下载开发工具
本文使用的开发工具是Android Studio Dolphin,可以在Android Studio官网的历史文档中找到下载地址和对应的下载包。
不成想安装后遇到意外退出的问题,查了好半天原因,也找chatgpt求助,仍然无果。最后还是在百度搜索下找到了解决办法:
- 删掉/Users/你的用户名/Library/LaunchAgents/jetbrains.vmoptions.plist
- 重启电脑
- 重新打开ok
原因简单来说就是因为我之前安装的版本和和现在要安装的版本有关配置不兼容。
下载Android的SDK
SDK全程是Software Development kit,即软件开发工具包,它将App的源码编译为可执行的App应用。
随着Android版本升级的更新换代,SDK也需要时常在线升级。SDK下载可以通过Android Studio的Tools->SDK Manager进入,并选择下载。
不知道window怎么样,Mac在安装过程中没有提示下载Android的SDK,或许是初始化创建完项目时下载的。
下载JDK
JDK全称Java Development kit,是java开发工具包。虽然Android开发需要java环境,但没要求计算机上必须事先安装JDK。而且Android Studio已经自带了JRE。
如果想切换JRE版本,可以选择打开FIle->Project Structure。通过图中切换java版本。
创建简单工程
创建项目在FIle->new位置。实际上大部分PC客户端软件都有相似之处,创建新项目或者新文件基本都在File菜单下。
创建过程按照要求填写即可。最后点Finish。
创建内置模拟器
这里我没有使用模拟器,而是直接连接用的自己华为手机。
创建内置模拟器可以在Tools->Device Manager开启。
开发基础
App的开发语言
基于安卓系统的App开发主要有两大技术路线,分别是原生开发和混合开发。
原生开发是指在移动平台利用官方的编程语言、开发工具包、开发环境进行App开发。
混合开发是结合原生与H5技术开发混合应用,也就是将部分App页面改为内嵌的网页。
单就原生开发而言,涉及多种编程语言,包括Java、Kotlin、C/C++、XML等。Java是Android开发的主要编程语言,Kotlin是目前官方推荐语言。C/C++用于复杂应用场景的开发。XML用来实现应用的布局,类似Web开发的html。
App连接的数据库
Android有专门的内置数据库SQLite,无需安装。
App的工程结构
其上app代表模块,默认就是app。其中有三个目录:build、libs和src。
当前只要知道src是源码就行了,哈哈哈。
还可以以app模块方式查看
manifests下的AndroidManifest.xml是App的运行配置文件。
java目录下面的第一个是源码,剩下的是测试代码。显然第一个重要。
res是存放当前模块的资源文件,分别是
- drawable存放图形描述文件与图文文件。
- layout存放App页面的布局文件。
- mipmap存放App的启动图标。
- values目录存放一些常量定义文件,例如字符串常量strings.xml、像素常量dimens.xml、颜色常量colors.xml、样式风格定义styles.xml等。
还有一个重要文件:编译配置文件build.gradle。
启动页面设置
想要设置为启动页面的Activity
标签内,添加一个intent-filter
标签。
在intent-filter
标签内,添加一个action
标签,并设置其android:name
属性为android.intent.action.MAIN
。
在同一个intent-filter
标签内,添加一个category
标签,并设置其android:name
属性为android.intent.category.LAUNCHER
。
以下是一个例子
xml
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
跳转到新页面
启动页面java代码
java
package com.example.helloa2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button button; //xml文件定义的id
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
});
}
}
启动页面布局文件
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Go to Second Activity" />
</RelativeLayout>
跳转页面java
java
package com.example.helloa2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
}
跳转页面布局文件
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is Second Activity"
android:layout_centerInParent="true"/>
</RelativeLayout>
总结
整体上本文主要是进行Android app开发的基础性工作,包括以下几点
- Android Studio的安装,以及SDK和JDK相关使用
- Android app相关开发语言有哪些:java、Kotlin、C/C++和xml
- Android app启动页面设置
- Android app页面之间跳转实现
(本文完)