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

【安卓】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.

* 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里面加减配置

xmlns:tools="http://schemas.android.com/tools">

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">

android:name=".MainActivity"

android:exported="true"

android:label="@string/app_name"

android:theme="@style/Theme.Webapp">

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

android:id="@+id/webview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

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

目录结构如下:

如果是java格式的结构 可能是这样的:

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

app功能:展示百度首页

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

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

相关推荐

逐梦少年强!“小世界杯”圆满落幕
365bet365官网

逐梦少年强!“小世界杯”圆满落幕

📅 09-16 👁️ 4354
[资料整理]1994年至今SUNDAY每期出版时间与对应柯南漫画一览表,另整理柯南大事年表(更新至2016年第49号)
企业如何进行品牌推广?如何做好品牌营销?2022-06-09 12:00:362723浏览