安卓開(kāi)發(fā)一直在用大公司的開(kāi)源庫(kù),下面來(lái)整理一下與安卓開(kāi)發(fā)有關(guān)的庫(kù)。
一、阿里巴巴
(一)UI有關(guān)
1. 多頁(yè)面切換場(chǎng)景統(tǒng)一解決方案 UltraViewPager
UltraViewPager 是阿里開(kāi)源的一個(gè)封裝多種特性的 ViewPager ,主要是為多頁(yè)面切換場(chǎng)景提供統(tǒng)一解決方案。
主要功能:
1. 支持橫向滑動(dòng)/縱向滑動(dòng)
2. 支持一屏內(nèi)顯示多頁(yè)
3. 支持循環(huán)滾動(dòng)
4. 支持定時(shí)滾動(dòng),計(jì)時(shí)器使用 Handler 實(shí)現(xiàn)
5. 支持設(shè)置 ViewPager 的最大寬高
6. setRatio 按比例顯示 UltraviewPager
7. 內(nèi)置 indicator ,只需簡(jiǎn)單設(shè)置幾個(gè)屬性就可以完成展示,支持圓點(diǎn)和 Icon;
8. 內(nèi)置兩種頁(yè)面切換動(dòng)效
2.vlayout
vlayout是一個(gè)針對(duì)RecyclerView
的LayoutManager擴(kuò)展, 主要提供一整套布局方案和布局間的組件復(fù)用的問(wèn)題。
默認(rèn)通用布局實(shí)現(xiàn),解耦所有的View和布局之間的關(guān)系: Linear, Grid, 吸頂, 浮動(dòng), 固定位置等。
LinearLayoutHelper: 線(xiàn)性布局
GridLayoutHelper: Grid布局, 支持橫向的colspan
FixLayoutHelper: 固定布局,始終在屏幕固定位置顯示
ScrollFixLayoutHelper: 固定布局,但之后當(dāng)頁(yè)面滑動(dòng)到該圖片區(qū)域才顯示, 可以用來(lái)做返回頂部或其他書(shū)簽等
FloatLayoutHelper: 浮動(dòng)布局,可以固定顯示在屏幕上,但用戶(hù)可以拖拽其位置
ColumnLayoutHelper: 欄格布局,都布局在一排,可以配置不同列之間的寬度比值
SingleLayoutHelper: 通欄布局,只會(huì)顯示一個(gè)組件View
OnePlusNLayoutHelper: 一拖N布局,可以配置1-5個(gè)子元素
StickyLayoutHelper: stikcy布局, 可以配置吸頂或者吸底
StaggeredGridLayoutHelper: 瀑布流布局,可配置間隔高度/寬度
(二)框架有關(guān)
1. Android 應(yīng)用熱修復(fù)工具 AndFix
AndFix 是阿里巴巴開(kāi)源的 Android 應(yīng)用熱修復(fù)工具,幫助 Anroid 開(kāi)發(fā)者修復(fù)應(yīng)用的線(xiàn)上問(wèn)題。Andfix 是 "Android hot-fix" 的縮寫(xiě)。
AndFix 支持 Android 2.3 - 6.0,ARM 和 x86 架構(gòu),dalvik 運(yùn)行時(shí)和 art 運(yùn)行時(shí)。AndFix 的分支是 .apatch 文件。
(一)AndFix 方法體取代實(shí)現(xiàn)規(guī)則:
(二)Bug 修復(fù)過(guò)程:
(三)使用
1. 生成 .apatch 文件:
usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***>
-a,--alias <alias> alias.
-e,--epassword <***> entry password.
-f,--from <loc> new Apk file path.
-k,--keystore <loc> keystore path.
-n,--name <name> patch name.
-o,--out <dir> output dir.
-p,--kpassword <***> keystore password.
-t,--to <loc> old Apk file path.
2.合并 .apatch 文件:
usage: apkpatch -m <apatch_path...> -k <keystore> -p <***> -a <alias> -e <***>
-a,--alias <alias> alias.
-e,--epassword <***> entry password.
-k,--keystore <loc> keystore path.
-m,--merge <loc...> path of .apatch files.
-n,--name <name> patch name.
-o,--out <dir> output dir.
-p,--kpassword <***> keystore password.
2. 非侵入式運(yùn)行期 AOP 框架 Dexposed
Dexposed 是阿里巴巴無(wú)線(xiàn)事業(yè)部第一個(gè)重量級(jí) Andorid 開(kāi)源軟件,基于 ROOT 社區(qū)著名開(kāi)源項(xiàng)目 Xposed 改造剝離了 ROOT 部分,演化為服務(wù)于所在應(yīng)用自身的 AOP 框架。它支撐了阿里大部分 App 的在線(xiàn)分鐘級(jí)客戶(hù)端 bugfix 和線(xiàn)上調(diào)試能力。
Dexposed 的 AOP 是實(shí)現(xiàn)了純非侵入式,沒(méi)有任何注釋處理器,weaver 或者字節(jié)碼重寫(xiě)程序。Dexposed 的集成非常簡(jiǎn)單,就像加載一個(gè) JNI 庫(kù)一樣,只需要在初始化的時(shí)候插入一行代碼。
經(jīng)典用例
1.典型的 AOP 編程
2.儀表化 (測(cè)試,性能監(jiān)控等等)
3.在線(xiàn)熱修復(fù)(重要,關(guān)鍵,安全漏洞等等)
4.SDK hooking,更好的開(kāi)發(fā)體驗(yàn)
大致用法:
1.Gradle 依賴(lài):
native_dependencies {
artifact 'com.taobao.dexposed:dexposed_l:0.2+:armeabi'
artifact 'com.taobao.dexposed:dexposed:0.2+:armeabi'
}
dependencies {
compile files('libs/dexposedbridge.jar')
}
2.初始化:
public class MyApplication extends Application {
@Override public void onCreate() {
// Check whether current device is supported (also initialize Dexposed framework if not yet)
if (DexposedBridge.canDexposed(this)) {
// Use Dexposed to kick off AOP stuffs.
...
}
}
...
}
基礎(chǔ)使用示例代碼1:
// Target class, method with parameter types, followed by the hook callback (XC_MethodHook).
DexposedBridge.findAndHookMethod(Activity.class, "onCreate", Bundle.class, new XC_MethodHook() {
// To be invoked before Activity.onCreate().
@Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
// "thisObject" keeps the reference to the instance of target class.
Activity instance = (Activity) param.thisObject;
// The array args include all the parameters.
Bundle bundle = (Bundle) param.args[0];
Intent intent = new Intent();
// XposedHelpers provide useful utility methods.
XposedHelpers.setObjectField(param.thisObject, "mIntent", intent);
// Calling setResult() will bypass the original method body use the result as method return value directly.
if (bundle.containsKey("return"))
param.setResult(null);
}
// To be invoked after Activity.onCreate()
@Override protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedHelpers.callMethod(param.thisObject, "sampleMethod", 2);
}
});
基礎(chǔ)使用示例代碼2:
DexposedBridge.findAndHookMethod(Activity.class, "onCreate", Bundle.class, new XC_MethodReplacement() {
@Override protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
// Re-writing the method logic outside the original method context is a bit tricky but still viable.
...
}
});
3. Android 容器化框架 Atlas
Atlas 是由阿里巴巴移動(dòng)團(tuán)隊(duì)自研的手機(jī)淘寶安卓客戶(hù)端容器化框架,以容器化思路解決大規(guī)模團(tuán)隊(duì)協(xié)作問(wèn)題,實(shí)現(xiàn)并行開(kāi)發(fā)、快速迭代和動(dòng)態(tài)部署,適用于 Android 4.x 以上系統(tǒng)版本的大小型 App 開(kāi)發(fā)。
Atlas 適用于大規(guī)模團(tuán)隊(duì)的協(xié)同開(kāi)發(fā)。通過(guò)提供組件化、動(dòng)態(tài)性、解耦化的支持,能夠?qū)崿F(xiàn)每個(gè)業(yè)務(wù)在開(kāi)發(fā)階段獨(dú)立編譯、獨(dú)立調(diào)試、獨(dú)立運(yùn)行,最后再以一個(gè)組件的形式集成到客戶(hù)端中,每個(gè)業(yè)務(wù)之間并行開(kāi)發(fā)互不影響。此外,還具備客戶(hù)端動(dòng)態(tài)發(fā)版和快速修復(fù)的能力。
特性:
1. 在工程期,實(shí)現(xiàn)工程獨(dú)立開(kāi)發(fā),調(diào)試的功能,工程模塊可以獨(dú)立。
2. 在運(yùn)行期,實(shí)現(xiàn)完整的組件生命周期的映射,類(lèi)隔離等機(jī)制。
3. 在運(yùn)維期,提供快速增量的更新修復(fù)能力,快速升級(jí)。
4. ARouter
一個(gè)安卓路由器中間件,幫助應(yīng)用程序?qū)Ш降交顒?dòng)和自定義服務(wù)。組件化開(kāi)發(fā)
可以用到它。
(三)跨平臺(tái)框架有關(guān)
1.weex
跨平臺(tái)的UI框架
github地址: weex
weex的文檔
weex官網(wǎng)
2.Tangram-Android
Tangram是一套動(dòng)態(tài)化構(gòu)建 Native 頁(yè)面的框架,它包含 Tangram Android、Tangram iOS,管理后臺(tái)等一些列基礎(chǔ)設(shè)施。本工程是 Tangram Android 的sdk 項(xiàng)目地址,底層依賴(lài)于 vlayout 和 UltraViewPager。
特點(diǎn):
1.Android iOS 雙平臺(tái)支持,iOS 版本參考開(kāi)源庫(kù) [Tangram-iOS](https://github.com/alibaba/Tangram-iOS)。
2.通過(guò) json 創(chuàng)建頁(yè)面視圖,并提供了默認(rèn)的解析器。
3.可輕松實(shí)現(xiàn)頁(yè)面視圖的回收與復(fù)用。
4.框架提供多種默認(rèn)的布局方式。
5.通過(guò) json 數(shù)據(jù)或代碼支持自定義布局樣式。
6.高性能,基于 [vlayout](https://github.com/alibaba/vlayout)
7.支持?jǐn)U展功能模塊
3.LuaViewSDK
(1) LuaViewSDK簡(jiǎn)介
LuaViewSDK是一個(gè)跨平臺(tái)的框架,旨在構(gòu)建本地,動(dòng)態(tài)和快速的用戶(hù)界面。 它基于Lua VM,并選擇lua作為腳本語(yǔ)言。
LuaView 是一種運(yùn)行在一個(gè) ViewController/Activity 中,可以靈活加載Lua 腳本,并能夠按照 Native 的方式
運(yùn)行的一種面向業(yè)務(wù)的開(kāi)發(fā)技術(shù)方案??梢钥焖匍_(kāi)發(fā)電商應(yīng)用中既要求體驗(yàn)又要求靈活性的頁(yè)面功能。例如首頁(yè),類(lèi)目首頁(yè),
垂直頻道,大促活動(dòng)會(huì)場(chǎng)等。
(2) 背景
LuaViewSDK 主要解決客戶(hù)端開(kāi)發(fā)中的兩個(gè)常見(jiàn)問(wèn)題:
1.相同的業(yè)務(wù)邏輯需要在 iOS 和 Android 平臺(tái)各實(shí)現(xiàn)一次,除了開(kāi)發(fā)成本高,也會(huì)引入體驗(yàn)的細(xì)微差別。
是否有一種技術(shù)方案可以做到一份代碼,兩個(gè)平臺(tái)運(yùn)行,行為相同 ?
2.移動(dòng) APP 開(kāi)發(fā)領(lǐng)域,要極致體驗(yàn)發(fā)布就不靈活(Native),要靈活發(fā)布就沒(méi)有極致體驗(yàn)(H5)。
有沒(méi)有一種技術(shù)方案可以兼顧極致的體驗(yàn)和靈活的發(fā)布?LuaView 可以完美解決上述兩個(gè)問(wèn)題。
(3) 為何使用Lua?
市面上有許多類(lèi)似的方案,比如React Native和Weex,他們使用了JS框架,配合DSL來(lái)進(jìn)行界面布局,使用JS引擎進(jìn)行腳本動(dòng)態(tài)解析,實(shí)現(xiàn)了動(dòng)態(tài)化的Native界面渲染能力。LuaViewSDK使用lua虛擬機(jī)進(jìn)行腳本解析,通過(guò)構(gòu)建lua與native之間的一系列基礎(chǔ)bridge功能,從另一個(gè)角度實(shí)現(xiàn)了動(dòng)態(tài)化的native能力。
相比于基于JS虛擬機(jī)的解決方案,LuaViewSDK選擇的lua有如下優(yōu)勢(shì):
1.lua虛擬機(jī)極為輕量高效。單個(gè)lua虛擬機(jī)只消耗大約200到300k的內(nèi)存空間,同屏渲染幾十個(gè)LuaView沒(méi)有任何負(fù)擔(dān)
2.lua天生就是作為一個(gè)極其輕量、可嵌入的設(shè)計(jì)實(shí)現(xiàn),它更適合做API的封裝或是數(shù)據(jù)傳輸?shù)闹虚g層。
在A(yíng)pp的開(kāi)發(fā)上,更適合作為膠水語(yǔ)言,來(lái)直接操作native對(duì)象
3.lua語(yǔ)法精煉,直觀(guān),native開(kāi)發(fā)人員上手基本沒(méi)有難度
4.使用native開(kāi)發(fā)人員更為熟悉的Native編程模式,直接創(chuàng)建和操作各種界面對(duì)象
另外:
https://github.com/alibaba/LuaViewPlayground 這個(gè)庫(kù)是對(duì)LuaViewSDK的一個(gè)補(bǔ)充,用來(lái)向開(kāi)發(fā)者展示如何使用LuaViewSDK的基礎(chǔ)控件、基本功能,以及如何擴(kuò)展組件。
4.Thera
Thera是由Alibaba.com提供支持的集成開(kāi)發(fā)環(huán)境(IDE),旨在改進(jìn)移動(dòng)混合解決方案的開(kāi)發(fā)體驗(yàn),例如weex,luaview,react native。
(四)編譯、解析、埋點(diǎn)工具有關(guān)
1. freeline(我本人目前用這個(gè)用得最多,比自帶的編譯速度快多了)
它是一個(gè)Android Studio的插件,可以在A(yíng)ndroid Studio的插件庫(kù)查找到,下載安裝直接使用。這里列舉的是阿里巴巴在github的官網(wǎng)源碼。
Freeline 是 Android 平臺(tái)上的秒級(jí)編譯方案,Instant Run 的替代品,也可以從 Freeline 官方主頁(yè) 來(lái)獲取更多的信息。
Freeline 由 螞蟻聚寶 Android 團(tuán)隊(duì)開(kāi)發(fā),它可以充分利用緩存文件,在幾秒鐘內(nèi)迅速地對(duì)代碼的改動(dòng)進(jìn)行編譯并部署到設(shè)備上,有效地減少了日常開(kāi)發(fā)中的大量重新編譯與安裝的耗時(shí)。
Freeline能夠?yàn)锳ndroid開(kāi)發(fā)者節(jié)省很多喝杯咖啡的時(shí)間。
功能:
1.支持標(biāo)準(zhǔn)的多模塊 Gradle 工程的增量構(gòu)建
2.并發(fā)執(zhí)行增量編譯任務(wù)
3.進(jìn)程級(jí)別異常隔離機(jī)制
4.支持 so 動(dòng)態(tài)更新
5.支持 resource.arsc 緩存
6.支持 retrolambda
7.支持 DataBinding
8.支持各類(lèi)主流注解庫(kù)
9.支持 Windows,Linux,Mac 平臺(tái)
2. fastjson
Fastjson是一個(gè)Java語(yǔ)言編寫(xiě)的高性能功能完善的JSON庫(kù)。它采用一種“假定有序快速匹配”的算法,把JSON Parse的性能提升到極致,是目前Java語(yǔ)言中最快的JSON庫(kù)。Fastjson接口簡(jiǎn)單易用,已經(jīng)被廣泛使用在緩存序列化、協(xié)議交互、Web輸出、Android客戶(hù)端等多種應(yīng)用場(chǎng)景。
3.android_viewtracker
ViewTracker是用于自動(dòng)化的采集用戶(hù)UI交互過(guò)程中的點(diǎn)擊和曝光事件,基于view事件代理及過(guò)濾的數(shù)據(jù)采集庫(kù)。
功能:
1.支持`Android`&`iOS`平臺(tái)。
2.支持采集點(diǎn)擊事件、曝光事件。
3.支持采集頁(yè)面公共信息。
4.支持多個(gè)場(chǎng)景:列表滑動(dòng),列表自動(dòng)滾動(dòng),頁(yè)面內(nèi)`Window`切換,`Tab`頁(yè)切換,進(jìn)入下一個(gè)頁(yè)面,應(yīng)用前后臺(tái)切換。
5.支持?jǐn)U展:數(shù)據(jù)提交、曝光規(guī)則自定義(時(shí)間閾值和寬高閾值)、采樣率定義等。
(五)測(cè)試、文檔工具有關(guān)
1. 移動(dòng)自動(dòng)化測(cè)試平臺(tái) Athrun
Athrun以Mobile自動(dòng)化為基礎(chǔ),以PC2Mobile為切入點(diǎn),是淘寶Mobile測(cè)試日常工作必備的平臺(tái)。
目前Athrun支持:
1. Android上的自動(dòng)化測(cè)試,包括自動(dòng)化測(cè)試框架,持續(xù)集成體系。覆蓋率工具和自動(dòng)錄制回放工具,也在試用完善中。
2. iOS上的自動(dòng)化測(cè)試,包括注入式自動(dòng)化框架AppFramework,和基于錄制的非注入式自動(dòng)化框架Athrun_IOS,還有持續(xù)集成體系。目前兩個(gè)框架在淘寶測(cè)試內(nèi)都有用戶(hù)群,都還在不斷使用和演進(jìn)過(guò)程中。AppFramework將會(huì)支持socket通信方式。
AthrunStudio是基于PC2Mobile的移動(dòng)工作平臺(tái),目前正在開(kāi)發(fā)中。Demo代碼開(kāi)源,可以實(shí)現(xiàn)PC對(duì)手機(jī)的遠(yuǎn)程控制。
2.接口文檔管理工具 RAP
RAP通過(guò)GUI工具幫助WEB工程師更高效的管理接口文檔,同時(shí)通過(guò)分析接口結(jié)構(gòu)自動(dòng)生成Mock數(shù)據(jù)、校驗(yàn)真實(shí)接口的正確性,使接口文檔成為開(kāi)發(fā)流程中的強(qiáng)依賴(lài)。有了結(jié)構(gòu)化的API數(shù)據(jù),RAP可以做的更多,而我們可以避免更多重復(fù)勞動(dòng)。
3.Macaca
一套完整的自動(dòng)化測(cè)試解決方案
特點(diǎn):
1.支持移動(dòng)端和PC端
2.支持 Native, Hybrid, H5 等多種應(yīng)用類(lèi)型
3.提供客戶(hù)端工具和持續(xù)集成服務(wù)
4.GCanvas
github地址 https://github.com/alibaba/GCanvas
碼云地址 https://gitee.com/mirrors/GCanvas
GCanvas 是由淘寶開(kāi)發(fā)的針對(duì)移動(dòng)設(shè)備的跨平臺(tái)渲染引擎。 它使用 C ++ 編寫(xiě),基于 OpenGL ES,可為 Javascript 運(yùn)行時(shí)提供高性能的 2D / WebGL 渲染。它也具有類(lèi)似瀏覽器的畫(huà)布 API ,因此使用起來(lái)非常方便和靈活,尤其適用于 Web 開(kāi)發(fā)人員。
GCanvas 支持 Android 4.0+(API 14)和 iOS 8.0+ 。支持 Weex 和 ReactNative 等混合框架。 它還可以利用大多數(shù)設(shè)備上的硬件加速,使得開(kāi)發(fā)者可以使用 Javascript 以非常高的幀率繪制場(chǎng)景。
二、騰訊
1. 隨身調(diào)測(cè)平臺(tái) GT
GT(隨身調(diào))是APP的隨身調(diào)測(cè)平臺(tái),它是直接運(yùn)行在手機(jī)上的“集成調(diào)測(cè)環(huán)境”(IDTE, Integrated Debug Environment)。利用GT,僅憑一部手機(jī),無(wú)需連接電腦,您即可對(duì)APP進(jìn)行快速的性能測(cè)試(CPU、內(nèi)存、流量、電量、幀率/流暢度等等)、 開(kāi)發(fā)日志的查看、Crash日志查看、網(wǎng)絡(luò)數(shù)據(jù)包的抓取、APP內(nèi)部參數(shù)的調(diào)試、真機(jī)代碼耗時(shí)統(tǒng)計(jì)等。如果您覺(jué)得GT提供的功能還不夠滿(mǎn)足您的需要,您還 可以利用GT提供的基礎(chǔ)API自行開(kāi)發(fā)有特殊功能的GT插件,幫助您解決更加復(fù)雜的APP調(diào)試問(wèn)題。
2. Frozen UI 移動(dòng)端UI框架
Frozen UI是一個(gè)開(kāi)源的簡(jiǎn)單易用,輕量快捷的移動(dòng)端UI框架?;谑諵樣式規(guī)范,選取最常用的組件,做成手Q公用離線(xiàn)包減少請(qǐng)求,升級(jí)方式友好,文檔完善,目前全面應(yīng)用在騰訊手Q增值業(yè)務(wù)中。
3. AlloyTouch
絲般順滑的觸摸運(yùn)動(dòng)方案。這是一個(gè)給Web app使用的一個(gè)庫(kù)。這里面包含有一個(gè) 級(jí)聯(lián)選擇器 。
github地址:AlloyTouch
查看文檔請(qǐng)點(diǎn)擊: https://github.com/AlloyTeam/AlloyTouch/wiki
4. AlloyFinger
輕量級(jí)的多點(diǎn)觸摸網(wǎng)絡(luò)手勢(shì)庫(kù),用于web app的一個(gè)庫(kù)。
5. AlloyCrop
最好且最小的移動(dòng)裁剪組件,用于web app的一個(gè)庫(kù)。
6. 組件化框架 Omi 和 Omix
Omi(讀音 / [?om?] /, 漢字類(lèi)似于 歐米) 是一款用于創(chuàng)建Web用戶(hù)界面的組件化框架,開(kāi)放并且現(xiàn)代,故得名:Omi。Omi框架提供了漸進(jìn)增強(qiáng)式的Web開(kāi)發(fā)解決方案,內(nèi)置完善的支持無(wú)限聲明式嵌套的組件系統(tǒng)。
概括起來(lái)包含下面優(yōu)點(diǎn)和特性:
1.良好的兼容性 - 兼容IE8及IE8以上版本(要兼容IE8請(qǐng)使用omi.art.js),完美兼容各種手機(jī)平版移動(dòng)Web程序
2.超小的尺寸 - 7 kb (gzip)
3.面向未來(lái)的Web架構(gòu)體系 - 未來(lái)DOM很快,而且越來(lái)來(lái)快! 其實(shí)現(xiàn)在DOM已經(jīng)足夠快了:)
4.不使用虛擬DOM的問(wèn)題是跨平臺(tái)渲染更麻煩,Omi未來(lái)將提供`omi-canvas`進(jìn)行跨平臺(tái)渲染
5.ES6+ 和 ES5都可以 - Omi提供了ES6+和ES5的兩種開(kāi)發(fā)方案。你可以自有選擇你喜愛(ài)的方式
6.局部CSS - HTML+ Scoped CSS + JS組成可復(fù)用的組件。不用擔(dān)心組件的CSS會(huì)污染組件外的,Omi會(huì)幫你處理好一切
7.模板或指令系統(tǒng)可替換 - 默認(rèn)使用soda指令系統(tǒng),開(kāi)發(fā)者可以重寫(xiě)Omi.template方法來(lái)使用任意模板引擎或者指令引擎
8.完全面向?qū)ο?- 函數(shù)式和面向?qū)ο蟾饔袃?yōu)劣,Omi使用完全的面向?qū)ο蟮姆绞絹?lái)構(gòu)建Web程序。而且支持使用TypeScript來(lái)編寫(xiě)Omi程序
9.更自由的更新 - 每個(gè)組件都有update和updateSelf方法,自由選擇你認(rèn)為最佳的更新時(shí)機(jī)和最佳的更新方式。updateSelf不會(huì)更新子組件
10.完善豐富的插件和靈活的插件體系
omi-router ====》 Omi專(zhuān)屬的官方Router插件.
omi-finger ====》 Omi的[AlloyFinger](https://github.com/AlloyTeam/AlloyFinger)插件,支持各種觸摸事件和手勢(shì)
omi-transform ====》 Omi的[transformjs](https://alloyteam.github.io/AlloyTouch/transformjs/)插件,快速方便地設(shè)置DOM的CSS3 Transform屬性
omi-touch ====》 Omi的[AlloyTouch](https://github.com/AlloyTeam/AlloyTouch)插件,Omi項(xiàng)目的觸摸運(yùn)動(dòng)解決方案(支持觸摸滾動(dòng)、旋轉(zhuǎn)、翻頁(yè)、選擇等等)
omi-jquery-date-picker ====》 Omi的時(shí)間選擇插件,支持各種時(shí)間或者時(shí)間區(qū)域選擇
7. 組件化框架Omix
Omix(讀音 / [?om?k?:s] /, 漢字類(lèi)似于 歐米可思) 是一款使用 JSX 創(chuàng)建Web用戶(hù)界面的組件化框架,故得名:Omix。它并不是用來(lái)替代 Omi框架,而是另外一種選擇。
概括起來(lái)包含下面優(yōu)點(diǎn)和特性:
1.超迅捷的性能,經(jīng)過(guò)測(cè)試, 居然是所有框架第一名, 不信可以看看[dbmon with omix](https://alloyteam.github.io/omix/example/perfs)。雖然排第一,但是發(fā)現(xiàn)還有許多優(yōu)化空間??!
2.良好的兼容性 - 兼容 IE8,兼容各種手機(jī)平版移動(dòng) Web 程序
3.超小的尺寸 - 7 kb (gzip)
4.內(nèi)置支持 JSX 和 hyperscript , 喜歡哪種方式隨意切換。需要注意 omix 里寫(xiě) JSX 組件標(biāo)簽要小寫(xiě)
5.局部CSS - HTML+ Scoped CSS + JS組成可復(fù)用的組件。不用擔(dān)心組件的CSS會(huì)污染組件外的
6.更自由的更新 - 每個(gè)組件都有 update 方法,自由選擇你認(rèn)為最佳的更新時(shí)機(jī)和最佳的更新方式
7.靈活的插件體系和豐富的插件生態(tài)
omi-router ====》 Omi專(zhuān)屬的官方Router插件.
omi-finger ====》 Omi的[AlloyFinger](https://github.com/AlloyTeam/AlloyFinger)插件,支持各種觸摸事件和手勢(shì)
omi-transform ====》 Omi的[transformjs](https://alloyteam.github.io/AlloyTouch/transformjs/)插件,快速方便地設(shè)置DOM的CSS3 Transform屬性
omi-touch ====》 Omi的[AlloyTouch](https://github.com/AlloyTeam/AlloyTouch)插件,Omi項(xiàng)目的觸摸運(yùn)動(dòng)解決方案(支持觸摸滾動(dòng)、旋轉(zhuǎn)、翻頁(yè)、選擇等等)
8.JX
JX 是 Javascript eXtension tools 的縮寫(xiě),即 Javascript 擴(kuò)展工具套件的意思。一個(gè)類(lèi)似 Google Closure Library 的 Web 前端開(kāi)發(fā)框架。JX 框架同時(shí)適用于 Web Page 和 Web App 項(xiàng)目的開(kāi)發(fā),特別適合構(gòu)建和組織大規(guī)模、工業(yè)級(jí)的Web App,騰訊 WebQQ -、騰訊 Q+等產(chǎn)品都是采用JX框架開(kāi)發(fā),兼容目前所有主流瀏覽器。
特性:
1.微內(nèi)核設(shè)計(jì):內(nèi)核可完全分離出來(lái),用于構(gòu)建其他的框架
2.原生對(duì)象零污染:你懂的,隨著js的App越來(lái)約復(fù)雜,對(duì)原生對(duì)象的零污染也體現(xiàn)的越來(lái)越重要了
3.模塊封包:采用命名空間、閉包等方式建立了模塊封包的體系,幫助更好的組織海量js代碼
4.模塊自由拼裝:自身模塊做了良好的架構(gòu)分離,盡可能讓各個(gè)模塊之間可以自由的拼裝組合
5.無(wú)縫集成各種js框架:與jQuery, YUI, Mootools, Prototype.js 等框架無(wú)縫集成;與多種局部框架無(wú)縫集成,如:Mini, Sizzle, cssQuery, xpath, JSON 等等
6.多版本共存:如采用的Jx版本過(guò)舊,舊有的Javascript代碼不能與新版本Jx兼容,則可以采用多版本共存的方式保持程序的可延續(xù)性
7.分層設(shè)計(jì):Javascript核心層,與Javascript解釋引擎無(wú)關(guān)的封裝和擴(kuò)展;瀏覽器端Javascript層,對(duì)瀏覽器中的Javascript引擎部分的封裝和擴(kuò)展
9. WeTest-Assistant
這是基于手機(jī)端的輔助測(cè)試工具,目前包括性能測(cè)試和遠(yuǎn)程調(diào)試兩大功能,能夠?yàn)槭钟蔚软?xiàng)目發(fā)現(xiàn)CPU、內(nèi)存、FPS等性能問(wèn)題,并提供云端真機(jī)用于問(wèn)題在線(xiàn)調(diào)試,共計(jì)為公司內(nèi)外部項(xiàng)目服務(wù)5.4萬(wàn)次;手游客戶(hù)端性能測(cè)試常用性能維度,CPU,內(nèi)存,F(xiàn)PS,流量一次性全部收集,圖表化展示,數(shù)據(jù)可按場(chǎng)景化分類(lèi),并且支持離線(xiàn)和在線(xiàn)兩種模式, 地鐵上都可以做測(cè)試,Web上看報(bào)告。遠(yuǎn)程調(diào)試配合自研的云真機(jī)技術(shù),支持多點(diǎn)觸控、類(lèi)手柄遙控,真實(shí)還原手游測(cè)試場(chǎng)景,極速流暢、極低延遲, 本地只需要一臺(tái)手機(jī)即可操控云端任何一臺(tái)手機(jī)。支持ROOT和非ROOT安卓手機(jī),支持越獄iOS系統(tǒng)。
10.Tinker
Tinker是是微信官方的Android熱補(bǔ)丁解決方案,它支持動(dòng)態(tài)下發(fā)代碼、So庫(kù)以及資源,讓?xiě)?yīng)用能夠在不需要重新安裝的情況下實(shí)現(xiàn)更新。當(dāng)然,你也可以使用Tinker來(lái)更新你的插件。
11.ncnn
ncnn 是一個(gè)為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架。ncnn 從設(shè)計(jì)之初深刻考慮手機(jī)端的部署和使用。無(wú)第三方依賴(lài),跨平臺(tái),手機(jī)端 cpu 的速度快于目前所有已知的開(kāi)源框架?;?ncnn,開(kāi)發(fā)者能夠?qū)⑸疃葘W(xué)習(xí)算法輕松移植到手機(jī)端高效執(zhí)行,開(kāi)發(fā)出人工智能 APP,將 AI 帶到你的指尖。ncnn 目前已在騰訊多款應(yīng)用中使用,如 QQ,Qzone,微信,天天P圖等。
功能:
1.支持卷積神經(jīng)網(wǎng)絡(luò),支持多輸入和多分支結(jié)構(gòu),可計(jì)算部分分支
2.無(wú)任何第三方庫(kù)依賴(lài),不依賴(lài) BLAS/NNPACK 等計(jì)算框架
3.純 C++ 實(shí)現(xiàn),跨平臺(tái),支持 android ios 等
4.ARM NEON 匯編級(jí)良心優(yōu)化,計(jì)算速度極快
5.精細(xì)的內(nèi)存管理和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),內(nèi)存占用極低
6.支持多核并行計(jì)算加速,ARM big.LITTLE cpu 調(diào)度優(yōu)化
7.整體庫(kù)體積小于 500K,并可輕松精簡(jiǎn)到小于 300K
8.可擴(kuò)展的模型設(shè)計(jì),支持 8bit 量化和半精度浮點(diǎn)存儲(chǔ),可導(dǎo)入 caffe 模型
9.支持直接內(nèi)存零拷貝引用加載網(wǎng)絡(luò)模型
10.可注冊(cè)自定義層實(shí)現(xiàn)并擴(kuò)展
12.RapidView
RapidView是一套用于開(kāi)發(fā)Android客戶(hù)端界面、邏輯以及功能的開(kāi)發(fā)組件。布局文件(XML)及邏輯文件(Lua)可以運(yùn)行時(shí)執(zhí)行,主要用以解決Android客戶(hù)端界面、邏輯快速更新以及快速開(kāi)發(fā)的訴求。RapidView的XML語(yǔ)法規(guī)則與Android原生XML類(lèi)似,而寫(xiě)邏輯的Lua部分除語(yǔ)言語(yǔ)法規(guī)則外,可以直接使用我們提供的Java API以及Android原生API,因此熟悉Android客戶(hù)端開(kāi)發(fā)的開(kāi)發(fā)者上手成本會(huì)非常小。
13. QMUI Android(QMUI是騰訊的一個(gè)團(tuán)隊(duì),web,ios,android三平臺(tái)都有對(duì)應(yīng)的工具,這里列舉的是Android)
QMUI Android 的設(shè)計(jì)目的是用于輔助快速搭建一個(gè)具備基本設(shè)計(jì)還原效果的 Android 項(xiàng)目,同時(shí)利用自身提供的豐富控件及兼容處理,讓開(kāi)發(fā)者能專(zhuān)注于業(yè)務(wù)需求而無(wú)需耗費(fèi)精力在基礎(chǔ)代碼的設(shè)計(jì)上。不管是新項(xiàng)目的創(chuàng)建,或是已有項(xiàng)目的維護(hù),均可使開(kāi)發(fā)效率和項(xiàng)目質(zhì)量得到大幅度提升。
QMUI Android 官網(wǎng):http://qmuiteam.com/android/page/index.html
QMUI Android Github源碼查看:https://github.com/QMUI/QMUI_Android
三、百度
百度關(guān)于web的開(kāi)源庫(kù)很多,關(guān)于移動(dòng)端的庫(kù)很少。
1. Android自動(dòng)化測(cè)試框架 Cafe
Cafe 測(cè)試框架是一款來(lái)自百度QA部門(mén)的具有開(kāi)創(chuàng)性意義的Android平臺(tái)的自動(dòng)化測(cè)試框架,框架覆蓋了Android自動(dòng)化測(cè)試的各種需求??蚣苤铝τ趯?shí)現(xiàn)跨進(jìn)程測(cè)試、快速測(cè)試、深度測(cè)試,解決了Android自動(dòng)化測(cè)試中的諸多難題,比如業(yè)界一直沒(méi)有解決的跨進(jìn)程測(cè)試問(wèn)題。
2. GMU
GMU(Global Mobile UI)是百度前端通用組開(kāi)發(fā)的移動(dòng)端組件庫(kù),具有代碼體積小、簡(jiǎn)單、易用等特點(diǎn),組件內(nèi)部處理了很多移動(dòng)端的bug,覆蓋機(jī)型廣,能大大減少開(kāi)發(fā)交互型組件的工作量,非常適合移動(dòng)端網(wǎng)站項(xiàng)目。 該組件基于zepto的mobile UI組件庫(kù),提供webapp、pad端簡(jiǎn)單易用的UI組件!
3. 移動(dòng)WebApp開(kāi)發(fā)框架 Cloudajs
Clouda是基于node.js的Webapp開(kāi)發(fā)框架,在使用Clouda時(shí)需要安裝node.js和MongoDB。
【注】原云端一體框架Cloudajs(Sumeru)更名為 RapidJS,全面升級(jí)后,變得更加靈巧優(yōu)雅。
四、網(wǎng)易
1. Android性能測(cè)試工具 Emmagee
Emmagee是監(jiān)控指定被測(cè)應(yīng)用在使用過(guò)程中占用機(jī)器的CPU、內(nèi)存、流量資源的性能測(cè)試小工具。
支持SDK:Android2.2以及以上版本
Emmagee功能介紹
1、檢測(cè)當(dāng)前時(shí)間被測(cè)應(yīng)用占用的CPU使用率以及總體CPU使用量
2、檢測(cè)當(dāng)前時(shí)間被測(cè)應(yīng)用占用的內(nèi)存量,以及占用的總體內(nèi)存百分比,剩余內(nèi)存量
3、檢測(cè)應(yīng)用從啟動(dòng)開(kāi)始到當(dāng)前時(shí)間消耗的流量數(shù)
4、測(cè)試數(shù)據(jù)寫(xiě)入到CSV文件中,同時(shí)存儲(chǔ)在手機(jī)中
5、可以選擇開(kāi)啟浮窗功能,浮窗中實(shí)時(shí)顯示被測(cè)應(yīng)用占用性能數(shù)據(jù)信息
6、在浮窗中可以快速啟動(dòng)或者關(guān)閉手機(jī)的wifi網(wǎng)絡(luò)
2. Android測(cè)試自動(dòng)化框架 Robotium
Robotium是一個(gè)Android測(cè)試自動(dòng)化框架,全面支持本機(jī)和混合應(yīng)用。 Robotium可以輕松地為Android應(yīng)用程序編寫(xiě)強(qiáng)大而強(qiáng)大的自動(dòng)黑盒UI測(cè)試。 在Robotium的支持下,測(cè)試用例開(kāi)發(fā)人員可以編寫(xiě)功能,系統(tǒng)和用戶(hù)驗(yàn)收測(cè)試場(chǎng)景,跨越多個(gè)Android Activities。
pomelo-androidclient這是一個(gè)用于java和android的pomelo socket.io客戶(hù)端。該項(xiàng)目基于socket.io-java-client。pomelo-androidclient是Android的易于使用的pomelo客戶(hù)端,它也與JRE兼容。