如何创建一个APP

如何创建一个APP

简介

移动APP作为我们生活中不可或缺的一部分,相信大家都想了解一下,一款APP是如何被程序员制作出来的吧。今天给大家带来了如何在自己的电脑上创建一个APP项目,并制作出一个APP安装包安装到自己的手机上。我们将使用目前流行的移动应用框架flutter,在Windows电脑上开发一款简单的Android移动APP。本教程使用的电脑环境如下:

操作系统:Windows11

浏览器:Edge

命令行工具:powershell

你可以使用Windows10及以上版本,浏览器选择电脑自带浏览器即可。

话不多说,咱就开始吧!

一、前置知识补充

本节是提供一些和本文有关的一些背景知识,意在帮助读者更好的理解后续的内容,如果你已经掌握本节介绍的相关知识,可以直接进入第二节。

1.flutter简介

Flutter 是由 Google 开发的开源 UI 软件开发工具包(SDK)。它允许开发者使用单一的代码库,为多种平台构建高性能、美观的原生应用,包括:

移动端:​​ Android, iOS

​桌面端:​​ Windows, macOS, Linux

Web 端:​​ Web 平台(支持 JavaScript 和 WebAssembly)

核心特点:

​跨平台:​​ “一次编写,处处运行”,显著提高开发效率。

高性能:​​ Flutter应用的发布版本在Android和iOS上都进行了提前(AOT, Ahead Of Time)编译,使Flutter在移动设备上可以高性能地运行。

声明式 UI:​​ 使用 Dart 语言,通过组合“Widget”(组件)树来构建用户界面,开发直观高效。Widget 分为无状态(Stateless)和有状态(Stateful)两种。

丰富的 UI 组件:​​ 提供两套遵循主流设计语言的精美组件库:Material Design(Google 风格)和 Cupertino(Apple iOS 风格),可在任一平台上使用。

热重载:​​ 快速迭代开发,代码更改后能立即在运行中的应用上看到效果,无需重启。

开源与活跃社区:​​ 拥有庞大的开发者社区和丰富的第三方包(通过 Pub 包管理器)。

2.powershell简介

PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理架构,由在.NET Framework和后来的.NET上构建的命令行界面壳层相关脚本语言组成。其窗口界面如图所示:

使用powershell可以高效便捷地完成许多繁琐而又复杂的任务,下面介绍 了三种打开powershell窗口的方式:

方式1:通过运行命令打开

使用快捷键win + r 打开运行对话框,此时你可以在桌面的左下角看到一个窗口,如图所示:

此时直接切换为英文输入法,输入单词powershell并回车:

然后就会打开一个powershell窗口,如图所示:

方式2 使用快捷窗口打开:

在桌面上使用快捷键win+x 调出快捷菜单如图所示:

此时可以直接使用鼠标点击powershell选项打开powershell窗口,也可以按i键打开powershell窗口,如图所示:

方式3 在指定文件夹下打开powershell窗口:

有时候我们需要在指定的文件夹下使用powershell(例如本文的第四节),此时我们就需要使用以下方式在指定文件夹在打开powershell窗口。

首先我们先打开目标文件夹,例如下载文件夹:

然后按住shift键,同时鼠标右击文件夹空白处,在弹出的快捷菜单中点击在此处打开powershell窗口:

便可以在指定文件夹下打开powershell窗口,如图所示:

3.如何使用powershell

接下来将简要介绍如何使用powershell。

窗口介绍:

如图所示,powershell窗口的布局十分简洁,整个窗口由标题栏和命令行组成(命令行即输入命令的额区域):

输入一个命令:

打开powershell窗口后,我们可以将输入法切换为英文状态,然后直接输入命令,类似于记事本,我们可以在powershell窗口中输入直接输入以下命令:

echo "hello world"

如图所示:

然按下回车键(Enter),命令就会执行,同时我们可以在窗口中看到执行结果,如图所示:

最后我们来了解一下如何在powershell窗口中粘贴命令,

现在我们选中以下命令,并按下快捷键ctrl+c:

echo "这是第一行命令"

Write-Host "这是第而二行命令"

Write-Host "这是第三行命令" -ForegroundColor Red

然后再点击powershell窗口,按下快捷键ctrl+v,如图所示:

此时并没有看到命令的执行结果,我们需要按下回车键,这时就可以看到结果了,如图所示:

注意:有时候powershell窗口中并没有回到命令行状态,说明命令正在执行中,如图所示:

好了,以上就是需要了解的背景知识,接下来我们将开始创建我们的第一个APP!

二、下载和安装flutter开发环境(复杂度☆☆☆)

1.下载flutter安装包并安装到电脑

首先我们需要按下快捷键win+x松开并按下i键打开powershell窗口,然后将以下特别长的命令粘贴到powershell窗口中:

# 检测系统是否安装7-zip

function Get-7ZipPath {

$regPath = @(

'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip'

'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip'

)

foreach ($path in $regPath) {

if (Test-Path -Path $path) {

$regItem = Get-ItemProperty -Path $path

if ($regItem.InstallLocation) {

return $regItem.InstallLocation.TrimEnd('\')

}

}

}

# 检查默认安装路径

$possiblePaths = @(

"${env:ProgramFiles}\7-Zip",

"${env:ProgramFiles(x86)}\7-Zip",

"$env:LOCALAPPDATA\Programs\7-Zip"

)

foreach ($folder in $possiblePaths) {

$exePath = Join-Path $folder "7z.exe"

if (Test-Path $exePath -PathType Leaf) {

return $folder

}

}

return $null

}

# 检测7-zip

$7zipPath = Get-7ZipPath

if ($null -eq $7zipPath) {

Write-Host "未检测到 7-Zip,尝试下载并安装..." -ForegroundColor Yellow

# 下载安装程序

$url = "https://mirrors.nju.edu.cn/7-zip/7z2501-x64.exe"

$installer = Join-Path $env:TEMP "7z-installer.exe"

try {

Invoke-WebRequest -Uri $url -OutFile $installer

Write-Host "下载完成,开始静默安装..." -ForegroundColor Cyan

# 静默安装

Start-Process -FilePath $installer -ArgumentList "/S" -Wait

# 获取默认安装路径

$7zipPath = "${env:ProgramFiles}\7-Zip"

Write-Host "7-Zip 安装完成" -ForegroundColor Green

}

catch {

Write-Host "安装失败: $_" -ForegroundColor Red

exit 1

}finally {

# 清理安装文件

if (Test-Path $installer) {

Remove-Item $installer -Force

}

}

}

# 将7z添加到当前会话环境变量

$7zExe = Join-Path $7zipPath "7z.exe"

if (-not ($env:Path -split ';' -contains $7zipPath)) {

$env:Path += ";$7zipPath"

Write-Host "已将 7-Zip 路径添加到当前会话: $7zipPath" -ForegroundColor Cyan

}

# 验证7z可用性

if (-not (Test-Path $7zExe -PathType Leaf)) {

Write-Host "错误: 7z.exe 未找到,无法继续" -ForegroundColor Red

exit 1

}

# 下载flutter安装包

$flutterZip = Join-Path $HOME "flutter_windows_3.13.0-stable.zip"

Write-Host "开始下载 Flutter SDK..." -ForegroundColor Cyan

try {

Import-Module BitsTransfer -ErrorAction Stop

Start-BitsTransfer `

-Source "https://storage.flutter-io.cn/flutter_infra_release/releases/stable/windows/flutter_windows_3.13.0-stable.zip" `

-Destination $flutterZip `

-TransferType Download `

-ErrorAction Stop

Write-Host "Flutter SDK 下载完成" -ForegroundColor Green

}

catch {

Write-Host "下载失败: $_" -ForegroundColor Red

exit 1

}

# 使用7z解压flutter安装包

Write-Host "开始解压 Flutter SDK..." -ForegroundColor Cyan

try {

& $7zExe x "$flutterZip" "-o$HOME" -y

if ($LASTEXITCODE -ne 0) {

throw "解压失败,7z返回代码: $LASTEXITCODE"

}

Write-Host "解压完成" -ForegroundColor Green

}

catch {

Write-Host "解压失败: $_" -ForegroundColor Red

exit 1

}finally {

# 删除安装包

if (Test-Path $flutterZip) {

Remove-Item $flutterZip -Force

Write-Host "已清理安装包" -ForegroundColor DarkGray

}

}

# 获取当前文件夹的完整路径

$currentDir = $HOME

# 构建目标路径 (flutter\bin)

$flutterPath = Join-Path $currentDir "flutter\bin"

# 将flutter添加到环境变量

if (-not ($env:PATH -split ';' -contains $flutterPath)) {

# 更新注册表(用户级别)

[Environment]::SetEnvironmentVariable(

"PATH",

"$([Environment]::GetEnvironmentVariable('PATH', 'User'));$flutterPath",

'User'

)

# 更新当前会话

$env:PATH += ";$flutterPath"

Write-Host "已将 Flutter 添加到环境变量: $flutterPath" -ForegroundColor Cyan

} else {

Write-Host "环境变量已包含 Flutter 路径: $flutterPath" -ForegroundColor Yellow

}

# 验证 flutter是否可用

$flutterExe = Join-Path $flutterPath "flutter.bat"

if (Test-Path $flutterExe -PathType Leaf) {

Write-Host "Flutter 安装成功!" -ForegroundColor Green

} else {

Write-Host "Flutter 安装失败" -ForegroundColor Red

Write-Host "请检查路径: $flutterPath" -ForegroundColor Yellow

}

echo ''

命令解释:

首先会检测是否安装了7-zip因为后续的解压需要使用7z命令

如果安装了7-zip就继续执行后续步骤,否则就安装7-zip

然后从网络上下载flutter安装包,版本为3.13.0稳定版

下载完成的安装包 会保存到用户文件夹下

接着使用7z解压flutter安装包

解压后的flutter软件保存在用户文件夹\flutter文件夹中

最后将flutter添加到环境变量,并验证flutter是否可用

将命令粘贴到powershell窗口后,就会看到如下界面:

如果出现了以下情况,请点击是:

所有命令执行完大约需要等待6分钟,当命令执行完之后,如果powershell窗口显示如下信息表示flutter安装完成:

此时你已经完成了本节50%的步骤了🙂

2.初始化flutter软件

接下来我们需要配置flutter,请继续在powershell窗口中粘贴以下命令:

[Environment]::SetEnvironmentVariable("PUB_HOSTED_URL", "https://pub.flutter-io.cn", "User")

[Environment]::SetEnvironmentVariable("FLUTTER_STORAGE_BASE_URL", "https://storage.flutter-io.cn", "User")

$env:PUB_HOSTED_URL = "https://pub.flutter-io.cn"

$env:FLUTTER_STORAGE_BASE_URL = "https://storage.flutter-io.cn"

flutter doctor

echo ''

如图:

请等待几分钟,如果显示以下内容表示命令执行完成:

我们可以查看滚动窗口查看更详细的信息,如果你暂时不想了解flutter的具体细节,可以进入下一节。

flutter输出的信息解释:

这里我们可以了解到如下信息:

flutter的版本是3.13.0 stable

flutter是安装在Windows操作系统上的

Android toolchain 目前不可用

Chrome开发环境 目前不可用

Visual Studio 目前不可用

Android Studio 没有安装

Network resources的相关警告

其中值得注意的是Android toolchain和Android Studio,因为我们后续需要将我们的APP项目制作成Android安装包并安装在手机上,而实现以上功能就需要保证Android toolchain和Android Studio的配置正确,我们将在第四节继续讨论Android toolchain和Android Studio的配置内容。

其他问题并不影响flutter的使用,Network resources警告是因为国内网络的限制导致了flutter无法访问一些网站,这不是本文的讨论范围,感兴趣的伙伴可以去flutter.cn了解更多信息。

好了本节结束,接下来是比较轻松的部分,创建一个APP项目😄

三、创建一个APP项目(复杂度☆☆)

1.创建一个flutter项目

完成了flutter安装,我们接下来创建我们的第一个flutter APP项目。

在创建项目之前,我们需要准备一个文件夹,请根据你的使用习惯在你认为合适的地方创建一个存放flutter项目的文件夹吧。例如本文使用的是C:\Users\yu\Documents\flutter_projects

我们在创建的flutter文件夹中,按住shift键,鼠标右击空白处,在弹出的快捷菜单中点击在此处打开Powershell窗口 如图所示:

在打开的powershell窗口中粘贴以下命令:

flutter create myapp1

cd myapp1

以上命令会创建一个名为myapp1的flutter项目,并进入到myapp1项目文件夹中,如图所示:

如果你熟悉了以上两条命令,可以自己创建一个不同名称的项目然后继续后续的步骤。

我们可以看到flutter_projects文件夹中多了一个名为myapp1的文件夹,这便是myapp1项目文件保存的地方。

2.在Edge浏览器中查看我们的APP

接下来我们在浏览器中查看我们创建的APP是什么样的,我们继续在powershell窗口中粘贴以下命令命令:

flutter run

此时会出现以下界面,我们需要输入Edge所对应的序号,例如我这里是2,所以我就输入2:

等待几分钟,如果你看到了一个浏览器界面出现了一个如下图所示的解密,那么恭喜你,你已经完成了一个flutter项目的创建🎉

浏览器中显示的是一个flutter的demo APP,该APP实现了点击➕按钮就能让屏幕中间数字增大的功能。

当然,flutter的功能远不于此,你可以学习flutter的更多知识来创造一个你想要的APP!以下是我编写的一个flutter APP示例,你可以使用git克隆到本地。

https://github.com/zhuzilina/myapp1.git

四、配置Android环境(复杂度☆☆☆☆)

接下来的步骤稍微有一点复杂,如果你有足够的耐心,那就来吧💪

1.安装Android studio

请打开你的浏览器,在地址栏中粘贴以下链接并回车:

https://developer.android.google.cn/studio?hl=zh-cn

点击按钮“下载 Android Studio Narwhal 功能更新”

然后会出现一个协议条款的窗口,滚动到协议文本末尾,勾选我已阅读并同意上述条款及条件,并点击下载按钮开始下载Android studio安装包:

此时我们可以看到已经在下载Android studio的安装包了:

下载完成后点击打开文件即可进入Android studio的安装程序,请点击是开始安装:

然后一直点击next:

直到这一步,点击install开始安装Android studio:

然后等待1分钟,即可完成Android studio的安装,然后我们点击next:

最后点击finish,完成Android studio的安装,同时Android studio会自动打开:

打开Android studio后,首先会出现第一个窗口,点击don’t send:

此时会出现一个弹窗,点击 cancel:

然后一直点击next:

直到不能点击时,先点击accept接受协议,再点击next:

此时会开始下载Android sdk文件,请等待几分钟,当finish按钮高亮时,点击finish,进入Android studio:

点击Android studio窗口中的⚙️按钮:

然后点击settings选项进入Android studio配置窗口:

在Android studio配置窗口中点击languages & Frameworks选项:

接着在详情栏中点击Android sdk:

在Android sdk配置栏中点击sdk tools选项:

然后在sdk tools配置栏中勾选Android sdk command-line tools并点击ok按钮完成Android studio的配置:

在弹出的确认提示框中点击ok:

此时Android studio会下载依赖文件,需要几分钟的时间,当finish按钮高亮时点击finish按钮关闭窗口:

至此我们已经完成了Android配置的30%,接下来的操作需要回到原来的powershell窗口中,如果你关闭了刚才的powershell窗口,请打开flutter项目的文件夹然后使用第三节的方法打开一个powershell窗口。

例如我的flutter项目是myapp1,那么我需要打开myapp1这一文件夹,在该文件夹下打开powershell窗口:

2.配置Android许可

回到powershell窗口,然后粘贴以下命令:

flutter doctor

此时会出现一个弹窗,请点击允许:

然后继续粘贴以下命令:

flutter doctor --android-licenses

此时powershell窗口中会询问是否同意选项:

输入英文字符y并回车,剩下的6个询问是否同意选项也是这样的操作:

当所有的选项都输入y并回车之后,即完成了Android许可的配置:

至此Android的配置已经完成了70%,最后一步我们需要配置gradle,我们将继续在powershell窗口中完成后续操作。

3.配置gradle

在项目文件夹下打开的powershell窗口中粘贴以下命令:

# 修改android\build.gradle

$filePath = "android\build.gradle"

$content = Get-Content -Path $filePath -Raw

# 替换 buildscript.repositories

$buildRepos = @'

repositories {

maven { url "https://maven.aliyun.com/repository/gradle-plugin" }

maven { url "https://maven.aliyun.com/repository/public" }

google()

mavenCentral()

}

'@

$content = $content -replace '(?s)(buildscript\s*\{.*?repositories\s*\{).*?(\})', "`$1$buildRepos`n `$2"

# 替换 allprojects.repositories

$allRepos = @'

repositories {

maven { url 'https://maven.aliyun.com/repository/google' }

maven { url 'https://maven.aliyun.com/repository/public' }

google()

mavenCentral()

maven { url "https://storage.flutter-io.cn/download.flutter.io" }

}

'@

$content = $content -replace '(?s)(allprojects\s*\{.*?repositories\s*\{).*?(\})', "`$1$allRepos`n `$2"

# 写入文件并保持原有编码和换行符

Set-Content -Path $filePath -Value $content -NoNewline

# 修改android\gradle\wrapper\gradle-wrapper.properties

$wrapperPath = "android\gradle\wrapper\gradle-wrapper.properties"

$newUrl = 'distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.5-all.zip'

# 使用正则表达式替换 distributionUrl 行

$content = Get-Content -Path $wrapperPath

$modifiedContent = foreach ($line in $content) {

if ($line -match '^distributionUrl=') {

Write-Host "替换原始版本: $line" -ForegroundColor Yellow

$newUrl

} else {

$line

}

}

Set-Content -Path $wrapperPath -Value $modifiedContent

echo ''

如果powershell窗口显示以下内容表示配置完成:

现在已经完成了gradle的配置步骤,恭喜你完成了所有的配置,下一节我们将讨论如何创建一个apk文件,并在手机上安装该APP。

五、从项目代码到APP安装包(复杂度☆☆)

1.编译apk文件

在刚才的powershell窗口中粘贴以下命令(确保是在项目文件夹在打开的powershell窗口):

flutter build apk --release

这里需要等待一定的时间,大概是6分钟左右,当powershell窗口显示以下内容时表示apk文件编译完成:

Running Gradle task ‘assembleRelease’… 326.7s

√ Built build\app\outputs\flutter-apk\app-release.apk (17.3MB).

如图:

如果这一步顺利完成了,那么恭喜你,你已经拥有了一个APP 安装包了🎉

2.在手机上安装我们创建的APP

最后我们在手机上安装我们的APP😄

在原来的powershell窗口中粘贴以下命令:

Copy-Item -Path "build\app\outputs\flutter-apk\app-release.apk" -Destination "~\desktop\myapp1.apk"

执行完以上命令后,我们可以在桌面上看到一个名为myapp1.apk的文件:

这便是我们后续需要安装的apk软件啦!

你可以通过你擅长的文件传输方式将该文件发送到你的手机上,进行安装。我这里使用QQ

apk文件通过QQ传输后会自动在文件名末尾加上.1:

我们需要手动重命名将末尾的.1删去,然后点击该文件即可进入APP安装界面,由于不同的设备安装apk的方式不同,这里就不再讨论,你可以去网上搜索一下自己的设备是如何安装apk文件的。

最后安装完成的APP,打开后的效果如图:

六、结语

本文介绍了如何通过flutter框架搭建自己的APP项目myapp1,由于文章的目标是如何创建一个APP,侧重于整体的流程,所以并没有详细介绍如何编写和调试APP的项目文件。

flutter是一个强大的开源前端开源框架,其理念是一套代码支持全平台,也就是说编写一套flutter项目代码,我就可以将我的应用发布到Android手机、iPhone、浏览器、Windows电脑、Linux电脑和Mac电脑,由此可见其兼容性十分广泛。

相信通过本文,你对flutter有了一些认识,如果你对flutter感兴趣的话,欢迎加入flutter的世界,去使用flutter创造一款属于你的APP吧,你一定会爱上这一过程的🙂

一些关于flutter在国内部署的个人观点

由于国内网络的限制,部署flutter项目有时候会十分困难,我认为其中最难的部分就是flutter软件和开发Android需要用到的gradle软件的网络配置问题。对于不了解这些的开发者来说,修改一些各种各样的配置文件确实是一件头疼的事情。目前解决网络相关的问题,我认为最简单最高效的方式是使用代理网络,这样做不仅可以不做任何修改,同时能够实时更新flutter软件,大大提升了开发效率。本文使用的是修改软件配置文件的方法,解决flutter访问网络的问题的方法还有很多,如果你有其他的方法,那么欢迎你的分享。

相关推荐

充流量卡盟哪个最划算2025避坑指南新手必看套餐对比
365bet中国官方网站

充流量卡盟哪个最划算2025避坑指南新手必看套餐对比

📅 11-05 👁️ 2402
淘宝店铺id怎么查看?id限制怎么设置?
office365链接怎么打开

淘宝店铺id怎么查看?id限制怎么设置?

📅 08-11 👁️ 2884
手机听筒坏了修理多少钱
365bet中国官方网站

手机听筒坏了修理多少钱

📅 07-12 👁️ 9793
截图或者模糊图片高清处理方式
365bet中国官方网站

截图或者模糊图片高清处理方式

📅 07-22 👁️ 841
腾讯VS网易:策略巨变,集火米哈游退出赛道,Q4会表现如何?
GovHK 香港政府一站通:網上申請核實永久性居民身份證資格
三料视帝陈展鹏,为何突然不被TVB力捧了
office365链接怎么打开

三料视帝陈展鹏,为何突然不被TVB力捧了

📅 07-15 👁️ 727
午夜必看合集
office365链接怎么打开

午夜必看合集

📅 08-18 👁️ 6053
起猛了,“草莓音乐节”也出海了!
365bet中国官方网站

起猛了,“草莓音乐节”也出海了!

📅 07-13 👁️ 1254