Android App开发之开发环境和开发基础

最近的一个认识:绝大多数程序员都不过是Api调用攻城狮。下面开始正文。

开发环境

本文安装环境是Mac,处理器是intel的。

下载开发工具

本文使用的开发工具是Android Studio Dolphin,可以在Android Studio官网的历史文档中找到下载地址和对应的下载包。

不成想安装后遇到意外退出的问题,查了好半天原因,也找chatgpt求助,仍然无果。最后还是在百度搜索下找到了解决办法:

  1. 删掉/Users/你的用户名/Library/LaunchAgents/jetbrains.vmoptions.plist
  2. 重启电脑
  3. 重新打开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是存放当前模块的资源文件,分别是

  1. drawable存放图形描述文件与图文文件。
  2. layout存放App页面的布局文件。
  3. mipmap存放App的启动图标。
  4. 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开发的基础性工作,包括以下几点

  1. Android Studio的安装,以及SDK和JDK相关使用
  2. Android app相关开发语言有哪些:java、Kotlin、C/C++和xml
  3. Android app启动页面设置
  4. Android app页面之间跳转实现

(本文完)

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui