Ⅰ 如何編寫自己的android插件
目前plugin-x中定義了4個協議:ProtocolAds, ProtocolAnalytics, ProtocolIAP, ProtocolSocial。編寫自己的插件,不需要寫任何的c++/jni代碼或者javascript綁定代碼。我們已經在plugin-x的核心層實現了這些,開發者所要做的就是:
新建一個android工程。
使用java實現我們定義的介面。
plugin的文件夾結構
請確保你的plugin文件夾結構類似下圖:
build.xml : publish.sh腳本使用它,可以從其他插件工程拷貝過來,注意要修改工程名。
ForManifest.xml : gameDevGuide.sh使用它. 如果你的插件在AndroidManifest.xml開啟了一些額外的許可權,需要把他們添加到這個文件中。
sdk : 把第三方SDK的jar包放在這里。
src : 把你的插件實現代碼放在這里。
編寫java類實現至少一個介面
這個類應該有一個帶有Context參數的構造函數,例如:
package org.cocos2dx.plugin;
public class AnalyticsFlurry implements InterfaceAnalytics {
...
public AnalyticsFlurry(Context context) {
mContext = context;
}
}
你可以覆蓋介面中的方法,或者定義自己的方法,例如:
@Override
public String getSDKVersion() {
return "3.2.1";
}
protected void setUserId(String userId) {
LogD("setUserId invoked!");
final String curUser = userId;
PluginWrapper.runOnMainThread(new Runnable() {
@Override
public void run() {
try {
FlurryAgent.setUserId(curUser);
} catch(Exception e){
LogE("Exception in setUserId", e);
}
}
});
}
目前plugin-x只支持傳遞int, float, boolean, String, JSONObject類型的參數,返回值類型只可以是int, float, boolean, String。