App Inventor自定義插件Extension

App Inventor 是Google推出的一個簡化版的安卓開發,利用拖拽式的方式實現代碼塊堆疊,從而完成相應的邏輯;很容易上手,但是由於代碼塊提供的功能有限,使用比較單一,在開發上有很大的侷限性,但是在app inventor2中google提供了Extension模塊,開放了app inventor的源碼,使得開發者可以根據自己的需要自定義開發組件。

目前來看,自定義組件不太方便調試,報錯機制可能也不是很完善,開發上不是很方便,網上的相關教程也不是很詳細,現在,想將我自己這幾天的實現過程整理一下,以免這該死的健忘留下腦袋裏空空如也。

首先,是安裝必備工具:jdk、ant、(java IDEA、Sublime 用於編輯你自定義的組件代碼) APPEngine、python2.7以上(好像是用於啓動app inventor的本地服務器)在這裏我沒有用上,大家感興趣可以瞭解一下

一、配置環境

配置jdk:爲了不出問題,建議大家就安裝到默認目錄下,下一步到最後安裝完成。

安裝完JDK後配置環境變量  計算機(右鍵)→屬性→高級系統設置→高級→環境變量

新建JAVA_HOME:如果是默認安裝路徑那麼就在這個路徑下:C:\Program Files\Java\jdk1.8.0_171

新建Classpath: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

在Path後面新增:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;注意:如果之前的path末尾沒有;要手動加上

配置完成後點擊確定;cmd打開命令行,java -version ,顯示java jdk的版本,配置成功

配置ant:ant用來將你的寫完的自定義的Extension打包成aix文件,打包完成以後可以直接導入到app inventor中使用

ANT_HOME    存放你ant的目錄

path            ; %ANT_HOME%\bin;

classpath      ;%ANT_HOME%\lib;

驗證:cmd   命令行輸入ant命令

出現以上結果證明配置成功

二、自定義組件

編輯器選擇Sublime或者Java IDEA都可以,但是都不能直接運行,必須要打包成aix在app inventor中測試,這個比較雞肋

下載appinventor 源碼:可以通過git下載:git clone https://github.com/mit-cml/appinventor-sources.git,但是我下載下來的概率很低,可以通過此鏈接下載:https://download.csdn.net/download/upuprita/11473197

如果實在沒有積分也可以私信我(* ̄︶ ̄)

下載完成後解壓你的安裝包,找到E:\appinventor-sources-master\appinventor\components\src這個路徑,在此路徑下你就可以創建你自己的組件了,創建一個新的java,作爲你的組件;例如NewEx.java(這個類名字也是你將來組件的名字)

這裏我用的是IDEA,雖然有冒紅,看着彆扭,但是總歸比Sublime好用一些,最起碼可以看到各種類和變量的引用,查找起來更順手一些

在components的src目錄下創建一個包:cn.temp

在這個包下面創建你的組件的java類

package cn.temp;


import com.google.appinventor.components.annotations.*;
import com.google.appinventor.components.common.ComponentCategory;
import com.google.appinventor.components.runtime.*;
import com.google.appinventor.components.runtime.util.*;
import com.google.appinventor.components.runtime.errors.YailRuntimeError;

@DesignerComponent(version = NewEx.VERSION,
        description = "this is a test for extension",
        category = ComponentCategory.EXTENSION,//展示在appinventor的哪個模塊下;Extension是最後一個模塊
        nonVisible = true,//不可見
        iconName = "images/extension.png")//這個組件的圖標

@SimpleObject(external = true)

public class NewEx extends AndroidNonvisibleComponent {
    public static final int VERSION = 1;
    private static final String LOG_TAG = "NewEx";

    public NewEx(ComponentContainer container) {
        super(container.$form());
    }
    //計算a+b的和然後轉換成字符串
    @SimpleFunction(description = "add  ")//簡單方法
    public String addab(int a,int b) {
        return ""+(a+b);
    }
}

然後,對編輯好的進行打包,進入到此路徑下:E:\appinventor-sources-master\appinventor;就是你源碼下appinventor路徑下,打開命令行,輸入ant extensions 命令,第一次打包可能比較慢,大家耐心等待一下

成功後會看到一個aix的路徑,其中aix的名字就是包名,找到aix所在的位置,在appinventor中導入

然後在代碼塊中就可以調用你剛剛封裝好的模塊了

基本的流程大致就是這樣的了,接下來要封裝更復雜的情況,需要仿照源碼來封裝,感謝閱讀,歡迎指正~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章