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页面之间跳转实现

(本文完)

相关推荐
雨白1 小时前
Jetpack系列(二):Lifecycle与LiveData结合,打造响应式UI
android·android jetpack
kk爱闹3 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
每次的天空5 小时前
Android-自定义View的实战学习总结
android·学习·kotlin·音视频
恋猫de小郭5 小时前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
断剑重铸之日6 小时前
Android自定义相机开发(类似OCR扫描相机)
android
随心最为安6 小时前
Android Library Maven 发布完整流程指南
android
岁月玲珑6 小时前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
还鮟10 小时前
CTF Web的数组巧用
android
小蜜蜂嗡嗡12 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi0012 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体