LuaViewSDK 完全新手教程(Android)
說明:LuaView = LuaViewSDK
1.LuaViewSDK 是什么
LuaViewSDK 主要解決客戶端開發(fā)中的兩個常見問題:
相同的業(yè)務邏輯需要在 iOS 和 Android 平臺各實現(xiàn)一次,除了開發(fā)成本高,也會引入體驗的細微差別。是否有一種技術方案可以做到一份代碼,兩個平臺運行,行為相同 ?
移動 APP 開發(fā)領域,要極致體驗發(fā)布就不靈活(Native),要靈活發(fā)布就沒有極致體驗(H5)。有沒有一種技術方案可以兼顧極致的體驗和靈活的發(fā)布?
LuaView 可以完美解決上述兩個問題。
LuaView 是一種運行在一個 ViewController/Activity 中,可以靈活加載Lua 腳本,并能夠按照 Native 的方式運行的一種面向業(yè)務的開發(fā)技術方案??梢钥焖匍_發(fā)電商應用中既要求體驗又要求靈活性的頁面功能,例如首頁,類目首頁,垂直頻道,大促活動會場等。
LuaViewSDK 對 iOS 和 Android 平臺的接口做了包裝,保證同一份 Lua 代碼可以在兩個平臺運行,同時兼顧開發(fā)效率和運行性能。
LuaViewSDK 基于 LuaJ 和 LuaC 完成,所以有著與 Native 一樣強大的性能。
LuaViewSDK 可以通過 Lua 腳本橋接所有 Native 的功能,所以具有與 Native 一樣豐富的性能。
最關鍵的是 LuaViewSDK 已經(jīng)開源了,可以在 https://github.com/alibaba/luaviewsdk 查看 LuaViewSDK 的全部代碼。
說的這么好,有沒有什么證明呢?請看聚劃算客戶端的量販團、品牌團頁面。
2.本文針對的人群
這里的內(nèi)容主要針對沒有無線開發(fā)經(jīng)驗,想快速學習無線開發(fā)的Android同學。
可能你是一個其他領域的程序員,做過前端或服務端開發(fā),完全沒有客戶端開發(fā)經(jīng)驗。你只需要打開Android Studio IDE,就可以完成這里的所有操作,可以快速建立一個簡單的App,這個 App 沒有其他功能,只是在屏幕上顯示 Hello World LuaView to Android!。
對,它就是又一個的 Hello Word!
3.大綱
- 環(huán)境安裝( Android Studio 和 Android SDK )
- Android Studio 建立Android工程(new Android Studio project)
- 通過 import module方式,導入 LuaViewSDK 依賴
- 使用 Lua 編寫業(yè)務腳本
- 在 Activity Java 代碼中加載 Lua 業(yè)務腳本
- 在模擬器中運行
4.環(huán)境配置
4.1 第一步是安裝 Android Studio,Android開發(fā)必須用到的開發(fā)工具。
- 官方網(wǎng)址: http://developer.android.com/sdk/index.html
- 替代網(wǎng)址: http://www.android-studio.org/
4.2 下載 Android SDK
Android SDK 在 Android Studio中已經(jīng)包含,但是只是一個最新版的(當前最新為6.0),你可以將以前版本補全以進行所有代碼測試。通過 Androd Studio > Preferences 打開設置面板,然后選擇 Appearance & Behavior > System Settings > Android SDK 看到SDK設置面板,在SDK Platform中選擇你要下載的SDK版本(這里需要講Api Level 21、22 的版本全部鉤上),然后點擊 Apply 下載, 完成后重啟 Android Studio即可。
4.3 第三步在github上clone LuaViewSDK到本地目錄。
- github網(wǎng)址: https://github.com/alibaba/LuaViewSDK
- https方式:git clone https://github.com/alibaba/LuaViewSDK.git
- ssh方式:git clone git@github.com:alibaba/LuaViewSDK.git
5. Hello World 開發(fā)
主要步驟為:
- 新建Androd工程
- 添加LuaViewSDK Module
- 編寫 Lua 腳本
- 在Activity中加載 Lua 腳本
- 在模擬器中運行
5.1 新建Androd工程
(1)通過 File > New > New Project 建立新工程 或者
5.2 添加LuaViewSDK Module
(1)通過 File -> New -> Import Module 選擇之前git clone的LuaViewSDK目錄下的Android/LuaViewSDK目錄 點擊ok后,在選擇Module name 你可以直接用默認的“LuaViewSDK”,也可以自己選擇一個新的module名稱,注意不要去掉前面的“:”。直接點 finish。
(2) 引入時因為要下載LuaViewSDK中build.gradle中 buildToolsVersion 字段定義的gradle版本,過程可能會比較慢。先結束引入流程,然后文件目錄版從Android切換成Project,找到LuaViewSDK下面的build.gradle文件,進行編輯,將 buildToolsVersion字段的值替換成app目錄下build.gradle中 buildToolsVersion 字段的值。
(3)點擊一下 Sync Now 或者 build button 進行編譯一下
(4)編譯完成后如果當前compileSdkVersion的版本是23(Adnroid 6.0)的情況會報錯,因當前LuaViewSDK暫不支持6.0編譯,需要將compileSdkVersion降一下,這里可以直接改兩個module目錄下的build.gradle文件。
app目錄下的build.gradle文件添加
compileSdkVersion 21dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'junit:junit:4.12' compile 'com.android.support:support-v4:21.0.0' compile 'com.android.support:recyclerview-v7:+' compile project(':LuaViewSDK')}
LuaViewSDK目錄下的build.gradle文件添加或修改
compileSdkVersion 21
也可以直接用ide的工具進行修改:
1.點擊項目右鍵 -> 選擇Open Module Settings,進入Module修改面板。
2.Modules選中LuaViewSDK,在Properties選項中找到 “Compile Sdk Version”,下拉選中API 21。 3.Modules選中app,在Properties選項中找到 “Compile Sdk Version”,下拉選中API 21。
- Flavors選項中 “Target Sdk Version”也要修改一下。
- 修改Dependencies選項 先將V4 和 V7包的版本依賴修改如下
- app Module中添加LuaViewSDK module的依賴。選擇“+” -> Module dependency ,chose module 中選中“:LuaViewSDK”。然后查看LuaViewSDK依賴是否已加入。
(5)點擊一下 Sync Now 或者 build button 進行編譯一下
這里可能會遇到某些style因修改compileSdkVersion而找不到,可以將報錯行直接刪除,將app目錄下AndroidManifest.xml文件中Activity對應的style修改成“@android:style/Theme.Holo.Light”,不用android 6.0版本的style即可。 同時主Activity修改成繼承自Activity。 然后再編譯一下。
5.3 編寫 Lua 腳本
(2)在 assets 文件夾下添加hello.lua文件:New > File
(3)文件內(nèi)容為:
w,h = System.screenSize();window.frame(0, 0, w, h);window.backgroundColor(0xDDDDDD);label = Label();label.frame(0,50,w, 60);label.text("Hello World LuaView to Android");
5.4 在Activity中加載 Lua 腳本
按照如下內(nèi)容修改Activtiy文件:
package com.luaview.hellolua;import android.app.Activity;import android.os.Bundle;import com.taobao.luaview.global.LuaView;public class LuaActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LuaView view = LuaView.create(this); view.load("hello.lua"); setContentView(view); }}
5.5 在模擬器中運行
6.后記
完成了這些,你可以驕傲的說你能跨平臺進行移動開發(fā)了,歡迎進入LuaView的世界!
在LuaViewSDK目錄下,也可以讓Android Studio直接運行Android子目錄。在項目中有一些簡單的lua demo,這些將是后續(xù)進階的利器。
Doc目錄下的內(nèi)容是LuaViewSDK的doc幫助文檔。
LuaViewDebugger目錄下的文件是LuaView的調(diào)試工具(目前只支持模擬器調(diào)試)。