【安卓】Android开发入门 你的第一个apk应用

本文介绍如何写一个入门的安卓apk应用, 以嵌套一个网页为例。

开发ide:Android studio
语言:Kotlin

tips: 最好别下载新版本的 Android studio ,因为新版的界面有所改动 遇到问题去网上搜 新手刚入门可能界面都找不到在哪里;其次更重要的是新版创建时 已经不能选java语言了 (不过IDE可以自动将我们复制过来的java代码转成kotlin)

步骤:file – new – new project
在这里插入图片描述
选择activity ,我们这里选择的是empty activity
在这里插入图片描述
SDK,最好选择和我们手机安卓版本对应的
在这里插入图片描述

android代码: 认真看注释的注意事项
代码最好不要全部复制粘贴! 非常容易出现找不到主类的问题!!(至少在最新版的Android Studio里面非常容易出现这个bug)

类名用IDE自己生成的 不要动(
即使类名一样 也不要复制)
可以复制class里面 即最外层大括号里面的代码

package com.example.webapp

import android.os.Bundle
import androidx.activity.ComponentActivity
import android.webkit.WebView
import android.webkit.WebViewClient
import android.webkit.WebResourceRequest
import android.webkit.WebResourceError

/**
 * 注意事项:Kotlin 编写的
 * 一、AndroidManifest.xml 里面要配置网络权限
 *  1.   <uses-permission android:name="android.permission.INTERNET" />
 *  2.    android:usesCleartextTraffic="true"
 *  3.    android:networkSecurityConfig="@xml/network_security_config"
 * 二、 layout里面写布局xml文件
 * 三、 如果AndroidManifest.xml里面定义了主类 但还是提示找不到 创建一个新工程吧 不折腾了
 * 四、 虚拟设备可能上不了网 直接安装到手机里面尝试吧
 * Build > Generate Signed Bundle / APK
 * 选择APK:在弹出的对话框中,选择APK而不是Android App Bundle。然后点击Next。
 * 创建新的签名密钥或使用现有的:如果你之前没有生成过签名密钥,你需要创建一个新的。
 * 选择构建类型:选择一个构建变种(通常是release)
 */
class MainActivity : ComponentActivity() {

    private lateinit var webView: WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.my_web)

        webView = findViewById(R.id.webview)

        // Enable JavaScript
        webView.settings.javaScriptEnabled = true

        // Optional: Enable DOM storage API
        webView.settings.domStorageEnabled = true


        webView.settings.apply {
            useWideViewPort = true // 加载内容适用宽视图端口
            setSupportZoom(true) // 允许缩放
            builtInZoomControls = true // 启用内置缩放控件
            displayZoomControls = false // 不显示缩放控件
        }
        // 新增设置项,确保滚动条启用
        webView.scrollBarStyle = WebView.SCROLLBARS_INSIDE_OVERLAY


        // Handle page navigation
        webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(
                view: WebView?,
                request: WebResourceRequest?
            ): Boolean {
                view?.loadUrl(request?.url.toString())
                return true
            }

            override fun onReceivedError(
                view: WebView?,
                request: WebResourceRequest?,
                error: WebResourceError?
            ) {
                super.onReceivedError(view, request, error)
                // 在这里处理错误,例如显示一个自定义错误页面
            }
        }

        // Load a web page
        webView.loadUrl("http://www.baidu.com")
    }

    // Go back in webview history
    override fun onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack()
        } else {
            super.onBackPressed()
        }
    }
}

AndroidManifest.xml 文件: 同样不要直接复制替换,用来参考的 供大家手动去xml里面加减配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <!--配置网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <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.Webapp"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@style/Theme.Webapp">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

my_web.xml 文件:位于res/layout目录下 需要先新创建一个layout文件夹,这个可以直接复制

<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

network_security_config.xml文件:位于res/xml 文件夹下
这个也是可以直接复制的

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">

    </base-config>
</network-security-config>

目录结构如下:

在这里插入图片描述
如果是java格式的结构 可能是这样的:
在这里插入图片描述

接着build成apk 安装到我们自己手机就可以运行了, 我们就完成了一个简易的app

app功能:展示百度首页

(build步骤在上面注释里面)

用Android studio的虚拟设备 可能会出现连不上网的问题 需要自己解决,对新手来说不友好,本文暂不阐述
在这里插入图片描述

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在开始创建你的第一个安卓项目之前,确保你已经安装了 Android Studio 开发环境,并且已经配置好了相关的 SDK 和虚拟机。如果你还没有安装 Android Studio,你可以在官方网站上下载并安装最新版本的 Android Studio。 接下来,我们来创建自己的第一个安卓项目: 1. 打开 Android Studio,点击 “Start a new Android Studio project” 或者 File -> New -> New Project。 2. 在弹出的窗口中,你需要填写一些基本的项目信息,包括项目名称、项目位置、公司域名等等。 3. 接下来,你需要选择你的项目的最低支持的 Android 版本。选择合适的版本后,点击 Next。 4. 在下一步中,你需要选择你的项目的 Activity 类型。Activity 是安卓应用程序的基本组成部分,是用户界面的一个窗口或页面。选择 Empty Activity,然后点击 Next。 5. 在下一步中,你需要填写 Activity 的名称、布局文件的名称等等。这些信息可以在创建项目后修改,所以你不需要过于关注这些细节。点击 Finish 完成项目的创建。 6. 创建完成后,你会看到一个包含您项目的文件和资源的项目结构。在 Android Studio 中,你可以使用左侧的 Project 窗口浏览和管理项目文件。 7. 接下来,你可以通过点击 Build -> Make Project 来编译你的项目。如果你的项目编译成功,你可以通过点击 Run -> Run 'app' 来运行你的项目。 8. 当你的应用程序运行成功后,你可以通过点击 Build -> Generate Signed APK 来打包你的应用程序。在打包 APK 的过程中,你需要选择一个签名文件,并输入相关的信息。最终生成的 APK 文件可以在 app/build/outputs/apk 目录下找到。 这就是创建你的第一个安卓项目并且打包 APK 的基本步骤。在实际的开发过程中,你需要学习更多的安卓开发知识和技能,才能够创建出更加复杂和实用的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟秋与你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值