使用 AI 辅助

目前 AI 发展迅猛,作为开发人员,我们可以追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。

AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升代码质量,或者查找关键文档和资源,AI 作为编程助手都能让你事半功倍。

但遗憾的是,目前针对轻语言的专属大模型还在训练中;要想让 AI 直接编写轻语言代码程序,还尚需一些时日。

但幸运的是,轻语言天生拥有兼容任意目标语言的原生支持特性,换句话说在轻语言中,几乎可以100%使用原生代码,而实现功能的原生代码就可以让 AI 代劳,AI 编写后,只需要将代码复制到轻语言程序代码中;就可以正常使用。

在上一篇 原生代码支持 的文章中,我们已经了解到,轻语言可以直接在代码中使用目标平台的原生代码、本文以安卓为例;为大家讲解如何在安卓项目中使用AI生成的代码。

案例1

使用安卓SDK中的 Toast 弹出一个提示:

步骤

1. 先向 AI 提出问题

首先向任意AI提出问题:请帮我写一个可以在安卓中运行的函数;这个函数的功能是在安卓APP中弹出一个提示;开发语言为 Java ,谢谢

2. 分析AI给出的回答

这里我向 通义千问 提出上述的问题;返回的结果为:

import android.content.Context;
import android.widget.Toast;

public class Utils {

    /**
     * 显示一个短暂的提示信息。
     * 
     * @param context 上下文,通常是Activity的this
     * @param message 要显示的消息内容
     */
    public static void showToast(Context context, String message) {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    }
}
// 使用函数
Utils.showToast(this, "这是一个测试提示");

根据上方的回答内容;这里我们重点看两点:

  • 实现功能的具体代码

  • 代码中用到的引用和安卓上下文环境

实现功能的代码
public static void showToast(Context context, String message) {
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    }
引用
import android.content.Context;
import android.widget.Toast;

根据代码注释可以得知;实现功能的具体函数为:showToast ;这个函数需要2个参数、第一个参数为上下文,第二个是待显示的文本内容。并同时 import (引用) 了安卓 SDK 中两个数据类型。

3. 在轻语言安卓程序中使用

' 将 AI 给出的 import 语句复制到轻语言代码中;将 import 修改为 引用
引用 android.content.Context
引用 android.widget.Toast
' 然后定义一个函数,这个函数里面不需要传入上下文,因为上下文在轻语言
' 安卓框架中可以直接通过函数获取。
函数 showToast(变量 提示内容 为 文本型)
    Toast.makeText(取应用上下文(), 提示内容, Toast.LENGTH_SHORT).show()
结束 函数
上下文

安卓中所有的上下文;在轻语言安卓程序中都可以使用下面两个函数获取:

  • 取应用上下文()

  • MainActivity.getContext()

案例2

步骤

1. 先向 AI 提出问题

首先向任意AI提出问题:我现在正在开发一个安卓APP;我的APP里面需要一个功能:获取储存在安卓SD卡中指定APK文件的包名,能否帮我写一个函数、给这个函数传入APK路径、就能返回apk的包名,我目前使用的编程语言为 Java 、谢谢!

2. 分析AI给出的回答

这里我向 深度求索(DeepSeek) 提出上述的问题;返回的结果为:

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Environment;
import android.content.Context;

public String getApkPackageName(Context context, String apkPath) {
    PackageManager pm = context.getPackageManager();
    PackageInfo packageInfo = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
    if (packageInfo != null) {
        return packageInfo.packageName;
    }
    return null;
}
String apkPath = Environment.getExternalStorageDirectory() + "/your_app.apk";
String packageName = getApkPackageName(this, apkPath);
if (packageName != null) {
    System.out.println("Package Name: " + packageName);
} else {
    System.out.println("Failed to get package name.");
}

上述代码我们需要关注的主要为:函数 getApkPackageName 、及引用部分。

首先将引用部分代码全部复制到轻语言程序中;然后再新建一个同名函数;使用 @{ } 包裹 getApkPackageName 中的代码,注意:我们自定义创建的函数参数需与 AI 给出代码中的函数参数一样。最终在轻语言程序中的代码为:

引用 android.content.pm.PackageInfo
引用 android.content.pm.PackageManager
引用 android.content.pm.PackageManager.NameNotFoundException
引用 android.os.Environment
引用 android.content.Context
函数 getApkPackageName(apkPath 为 文本型) 为 文本型
    @{
        PackageManager pm = MainActivity.getContext().getPackageManager();
        PackageInfo packageInfo = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
        if (packageInfo != null) {
            return packageInfo.packageName;
        }
    }
    返回 ""
结束 函数

在轻语言中使用时,我们修改了原AI给出的代码中的

PackageManager pm = context.getPackageManager();

PackageManager pm = MainActivity.getContext().getPackageManager();

因为 context 为安卓中的上下文对象,原生代码中上下文在轻语言安卓中使用时,必须设置为轻语言安卓上下文。

提问建议

  • 提问时一定要将问题描述清楚;一般的提问公式或模板为:

    • 功能型(我想实现某个功能):

      • 具体功能 + 期望的行为 + 使用的语言

      • 示例:我正在开发安卓APP、我想在这个APP中指定位置显示一个对话框,例如点击按钮后,在左上角显示一个小弹窗,我使用的编程语言为 Java

    • 问题型(我遇到了问题需要解决)

      • 简短描述问题 + 期望的行为 + 实际发生 + 错误日志或信息

      • 示例:我正在开发APP、我的代码中连接了一个Mysql数据库,可以连接成功、但无法查询出数据,我需要正常运行APP后可以获取到数据、但现在实际返回了错误;错误信息为:java.sql.SQLException: Unknown system variable query_cache_size

  • 尽量让 AI 将所需功能集中,生成的代码封装到一个函数中

  • 有时候也不可全信AI、要结合自身经验处理

  • 如果一个AI平台连续给出的代码无效、或是错误的,可以多换几家其它平台