【安卓】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.webappimport 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: WebViewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.my_web)webView = findViewById(R.id.webview)// Enable JavaScriptwebView.settings.javaScriptEnabled = true// Optional: Enable DOM storage APIwebView.settings.domStorageEnabled = truewebView.settings.apply {useWideViewPort = true // 加载内容适用宽视图端口setSupportZoom(true) // 允许缩放builtInZoomControls = true // 启用内置缩放控件displayZoomControls = false // 不显示缩放控件}// 新增设置项,确保滚动条启用webView.scrollBarStyle = WebView.SCROLLBARS_INSIDE_OVERLAY// Handle page navigationwebView.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 pagewebView.loadUrl("http://www.baidu.com")}// Go back in webview historyoverride 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" /><applicationandroid: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"><activityandroid: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的虚拟设备 可能会出现连不上网的问题 需要自己解决,对新手来说不友好,本文暂不阐述