HybridApp開發庫

jopen 10年前發布 | 13K 次閱讀 Android開發 移動開發

開發App時, 把一些頁面使用HTML5開發, 集成到iOS和Android中, 比較省時省力. 那么來看看都有哪些主流庫可以使用呢?

本文主要關注三個: PhoneGap, DCloud, ReactNative, 并都做了嘗試.
PhoneGap: http://www.jianshu.com/p/c7fd736437b0
DCloud: http://www.jianshu.com/p/2cdf23c7c043
ReactNative: http://www.jianshu.com/p/d63c9a22973d

根據判斷, 目前使用ReactNative比較適合我們的需求.

1. 實時

PhoneGap 2.9.1最新版本竟然是2013年11月的.
DCloud和ReactNative都是最近更新的.

2. 友好

PhoneGap需要生成jar包導入, 并且不支持maven庫, 繼承CordovaActivity加載.

public class PhoneGapActivity extends CordovaActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 更換一下載入形式
        //setContentView(R.layout.activity_main);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

DCloud提供了多個jar包, 功能劃分的比較細致, 按需導入, 關聯代理和資源加載.

        if (mEntryProxy == null) {
            FrameLayout f = (FrameLayout) findViewById(R.id.js_contaner);
            wm = new WebappMode(this, f);
            mEntryProxy = EntryProxy.init(this, wm);
            mEntryProxy.onCreate(savedInstanceState, SDK.IntegratedMode.WEBAPP, wm);
        }

ReactNative提供maven庫, 配合npm加載模塊使, 啟動本地的服務, 通過自定義控件加載.

        mReactRootView = (ReactRootView) findViewById(R.id.test_js);
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index.android")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.RESUMED)
                .build();
        mReactRootView.startReactApplication(mReactInstanceManager, "MyAwesomeApp", null);

3. 示例

PhoneGap是apache的開源項目cordova, 文檔注釋都比較多, 項目較早.
DCloud是國內的HTML5庫, 文檔均以中文顯示, 比較方便學習, Demo提供很多示例和各種用法, 學習曲線比較低.
ReactNative是非死book公開的庫, 文檔自然比較全, 由于Android較新, 所以直到上一周才給出完整的文檔, Example是比較舊, 很難調用, 根據文檔學習如何開發, 目前關注很多.

4. 風險

PhoneGap目前看來屬于被拋棄的階段, 要不實在想不出為什么不更新文檔了.
DCloud是國內開發的庫, 目前還在迭代階段, 代碼比較混亂, jar包特別多, 但對國內的一些第三方庫支持較好.
ReactNatvie是非死book的新產品, 而且國內有些公司也在使用, 應該沒有問題, 學習之后, 知識也可以通用, 不至于太小眾.

推薦知乎的一篇關于ReactNative文章, 寫得非常好!
http://www.zhihu.com/question/27852694

5. 分享

PhoneGap的鏈接

官網: http://phonegap.com/
Cordova: http://cordova.apache.org/

ReactNative的鏈接

官網: http://非死book.github.io/react-native/
中文社區: http://reactjs.cn/
文檔: http://www.w3ctech.com/topic/909?utm_source=tuicool&utm_medium=referral

DCloud的鏈接

官網: http://www.dcloud.io/

綜上所述, 本人比較喜歡ReactNative.

ReactNative的詳細配置, 參考:
http://www.jianshu.com/p/7a6639d67783

來自: http://blog.csdn.net//caroline_wendy/article/details/49534831

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!