本教程将带你从零开始,在 Manjaro 环境下搭建开发环境,并编写一个丝滑的“套壳” App。我们将使用 Android Studio 配合原生 WebView 组件。
Manjaro 建议使用 pacman 或 yay 来安装开发工具,效率极高!
- 安装 Java 开发工具包 (JDK): 安卓开发目前推荐 JDK 17。
sudo pacman -S jdk17-openjdk
💡 小贴士: 使用
java -version验证。如果不是 17,请执行:sudo archlinux-java set java-17-openjdk
- 安装 Android Studio: 通过 AUR 安装是最省心的,它会自动配置好环境路径:
yay -S android-studio
- 初始化配置: 启动 Android Studio,跟随 Setup Wizard 下载 SDK Platform 和 SDK Build-Tools。
- 点击 New Project。
- 选择 Empty Views Activity (注意:不是 Compose,WebView 在传统 Views 下更稳定)。
- 项目参数设置:
- Name:
VeryGoodLMArena - Language: Java
- Minimum SDK: API 24 (Android 7.0) —— 兼顾主流设备。
- 点击 Finish,静候 Gradle 构建完成(第一次可能有点慢,喝杯咖啡 ☕)。
App 联网需要“通行证”。找到 app > manifests > AndroidManifest.xml。
- 在
<application>标签上方添加:
<uses-permission android:name="android.permission.INTERNET" />
- 允许加载 HTTP 网页(可选):如果在加载某些页面时白屏,请在
<application>标签内添加:
android:usesCleartextTraffic="true"
找到 app > res > layout > activity_main.xml,我们要给 WebView 一个“全屏舞台”。
将代码替换为:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/lmarena_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
🧩 技巧: 点击右上角的 Code 按钮即可切换到纯代码模式。
这是 App 的“大脑”。找到 app > java > [你的包名] > MainActivity.java。
优化后的完整代码:
package com.deepjhshenjing.verygoodlmarena;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.activity.OnBackPressedCallback; // 现代化的返回键处理
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private WebView lmarenaWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lmarenaWebView = findViewById(R.id.lmarena_webview);
// --- WebView 极简优化配置 ---
WebSettings settings = lmarenaWebView.getSettings();
settings.setJavaScriptEnabled(true); // 开启 JS
settings.setDomStorageEnabled(true); // 开启 DOM 存储(防止登录失效)
settings.setDatabaseEnabled(true);
settings.setUserAgentString(settings.getUserAgentString() + " VGLMA_App"); // 标识你的 App
// 核心:留在 App 内打开网页,不跳浏览器
lmarenaWebView.setWebViewClient(new WebViewClient());
// 加载目标
lmarenaWebView.loadUrl("https://arena.ai?mode=direct");
// --- 现代化返回键处理 ---
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
if (lmarenaWebView.canGoBack()) {
lmarenaWebView.goBack(); // 网页后退
} else {
finish(); // 退出应用
}
}
});
}
}
⚠️ 修正说明: 原教程中的onBackPressed()已被官方标记为弃用,使用OnBackPressedDispatcher能避免在 Android 13+ 设备上失效。
- 右键点击
app文件夹 -> New > Image Asset。 - Path: 选择你的 Logo 图片。
- Resize: 调整滑块确保 Logo 在圆圈内。
- 点击 Finish。Android Studio 会帮你搞定所有分辨率!
- 打开
app > res > values > strings.xml。 - 修改
app_name的值:
<string name="app_name">大模型竞技场</string>
- 手机开启 USB 调试。
- 点击 Android Studio 顶部的绿色小箭头 Run 🏃。
- 点击菜单栏 Build > Build Bundle(s) / APK(s) > Build APK(s)。
- 完成后,点击右下角弹窗的 Locate。
- 把生成的
app-debug.apk发送到手机安装即可!