偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android+Ruby=Ruboto:能訪問Android的簡單腳本

移動(dòng)開發(fā) Android
一種常用語言使兩個(gè)不相似的伙伴走到了一起:Ruby 腳本語言和 Google 針對 Android 程序的自定義格式。借助 JRuby 和 Android 項(xiàng)目的強(qiáng)大工具集,您可以編寫和運(yùn)行與常見的 Android 程序的表現(xiàn)完全不同的 Ruby 腳本。

今天,軟件開發(fā)中的大部分有趣工作都出現(xiàn)在兩個(gè)極端上:巨型云服務(wù)器和微型移動(dòng)設(shè)備。這些領(lǐng)域解決完全不同的問題,相應(yīng)地,也就擁有不同的工具支 持。服務(wù)器開發(fā)往往使用腳本語言將不同的組件捆綁在一起并完成復(fù)雜的自動(dòng)化任務(wù),而移動(dòng)開發(fā)主要關(guān)注某個(gè)特殊設(shè)備和用戶的特定功能和需求。

但是,這兩個(gè)極端共享一種常用語言:Java。無論 Android 還是 Spring 框架,當(dāng)今許多最流行的技術(shù)都采用一種全世界廣泛理解和支持的語言。這種常用語言可能會(huì)導(dǎo)致一些您原以為存在天壤之別的領(lǐng)域之間出現(xiàn)令人驚訝的交集。Java 編程打開了許多跨平臺(tái)選項(xiàng)的大門,比如將服務(wù)器代碼輕松移植到 Android 設(shè)備上,或從現(xiàn)有組件綁定原生平臺(tái)功能。

本文將探索 Ruboto 項(xiàng)目,該項(xiàng)目致力于在腳本語言和 Android 之間搭建一座橋梁。您將了解到 Ruby 和 Android 相關(guān)信息,它們?nèi)绾卧? Dalvik 虛擬機(jī)中協(xié)同工作,如何構(gòu)建和部署您的腳本,以及這種技術(shù)提高程序員生產(chǎn)力和應(yīng)用程序靈活性的潛力。

Ruby 背景知識

許多腳本語言都想獲得程序員的青睞,但 Ruby 目前處于有利位置。最著名的是,它支持 Rails web 框架,但很多開發(fā)人員還喜歡 Ruby 的簡潔性和優(yōu)雅。作為一種擁有 duck typing 和元編程(metaprogramming)等現(xiàn)代功能的面向?qū)ο竽_本語言,Ruby 不僅很強(qiáng)大,足以支持各種復(fù)雜架構(gòu);而且還很簡單,能執(zhí)行各種特殊任務(wù)。

Ruby 有幾種衍生版本,包括流行的 JRuby。JRuby 是一個(gè)功能齊備的 Ruby 解釋器,用 Java 語言編寫,可以在 Java Virtual Machine (JVM) 中運(yùn)行。與官方 Ruby 不同,JRuby 支持從 Java 代碼中調(diào)用 Ruby 腳本和從 Ruby 腳本中調(diào)用 Java API。

Android 背景知識

Android 由 Open Handset Alliance 開發(fā),但經(jīng)常被視為一個(gè) Google 項(xiàng)目。今天,Android 幾乎驅(qū)動(dòng)所有新智能手機(jī)的四分之一,它的市場份額持續(xù)增長。

在內(nèi)部,Android 在一個(gè)經(jīng)過修改的 Linux 內(nèi)核上運(yùn)行。大多數(shù)應(yīng)用程序都在 Dalvik 虛擬機(jī)上運(yùn)行,這個(gè)虛擬機(jī)完全由 Google 設(shè)計(jì)開發(fā),旨在優(yōu)化移動(dòng)設(shè)備上的性能。要了解更多 Dalvik 信息。

許多新 Android 開發(fā)人員忽略的一點(diǎn)是他們編寫的 Java 源代碼并不作為 Java 字節(jié)碼運(yùn)行。相反,Android 工具包將 Java 字節(jié)碼轉(zhuǎn)換為 Dalvik 字節(jié)碼。這些經(jīng)過轉(zhuǎn)換的文件(擴(kuò)展名為 .dex)被打包到部署到設(shè)備上的應(yīng)用程序中。等到設(shè)備運(yùn)行您的程序時(shí),將不會(huì)留下任何 Java 字節(jié)碼。

Android + Ruby = Ruboto

JRuby 團(tuán)隊(duì)成員 Charles Nutter 有一天突然意識到:既然 Android 工具包能將編譯后的 Java 代碼轉(zhuǎn)換為 Dalvik 文件,而且由于 JRuby 在編譯后的 Java 字節(jié)碼中有一個(gè) Ruby 解釋器,那么應(yīng)該能夠在 Android 上運(yùn)行 Ruby。在極短的時(shí)間內(nèi),他執(zhí)行了這個(gè)任務(wù),Ruboto 隨之誕生了。 在其他幾位開發(fā)人員的共同努力下,Ruboto 成為了一個(gè)活躍的項(xiàng)目,Android 和 Ruby 開發(fā)人員對該項(xiàng)目的興趣與日俱增。

今天,Ruboto 具有兩種版本:ruboto-irb 和 ruboto-core。ruboto-irb 是在 Android 上運(yùn)行的一個(gè)交互式 Ruby shell。這個(gè)項(xiàng)目允許運(yùn)行任何能訪問 Android API 的 Ruby 腳本。這個(gè)工具對于想在他們的設(shè)備上運(yùn)行測試或執(zhí)行任務(wù)的開發(fā)人員而言非常有用,但可能不適合編寫今后用于分發(fā)的應(yīng)用程序。

相比之下,ruboto-core 提供一個(gè)允許創(chuàng)建 Ruboto 項(xiàng)目的框架。使用 ruboto-core,可以向您的項(xiàng)目添加強(qiáng)大靈活的腳本支持,同時(shí)保留對 Android API 的訪問能力。圖 1 展示 ruboto-core 構(gòu)建過程:自動(dòng)生成的 Java 源文件和定制編寫的 Ruby 腳本打包到一個(gè)將在設(shè)備上運(yùn)行的 Android APK 中。

圖 1. 構(gòu)造一個(gè) Ruboto 應(yīng)用程序

從 Ruboto Java 文件到 APK 的流程圖

本文余下部分主要關(guān)注創(chuàng)建一個(gè)基于 Ruboto 的自定義項(xiàng)目。Ruboto 還是一個(gè)早期軟件,在本文撰寫之時(shí),它的版本編號是 0.0.2。該項(xiàng)目發(fā)展很快,等到您閱讀本文之時(shí),它可能已經(jīng)發(fā)生了輕微的變化。

編寫 SMS

將 Ruby 和 Android 結(jié)合起來,就能創(chuàng)建能訪問 Android 的強(qiáng)大功能的簡單腳本。我們將編寫一個(gè) Ruboto 腳本,允許用戶從一家快遞服務(wù)公司預(yù)訂海鮮。這個(gè)簡單的應(yīng)用程序?qū)⒗妹總€(gè)平臺(tái)的優(yōu)點(diǎn)。在 Android 端,您擁有一種簡單的方法來創(chuàng)建一個(gè)包含您的訂單的 SMS 消息,應(yīng)用程序甚至無需請求服務(wù)器就可以下訂單。在 Ruby 端,您將重用一個(gè)現(xiàn)有的語言處理庫,該庫將您的訂單規(guī)范化為一種可閱讀格式。

開始

要構(gòu)建 Ruby 腳本并將其部署到 Android 上,需要幾個(gè)組件。您可能已經(jīng)安裝了部分組件,如果是這樣,您可以繼續(xù)使用它們。

由于 Android 和 Ruby 是多平臺(tái)的,因此可以在 Linux、Mac OS X 或 Windows 上運(yùn)行 Ruboto。本文完全使用命令行。

如果您在 Windows 上使用 cygwin,則可能會(huì)在運(yùn)行某些 JRuby 命令時(shí)遇到問題。為安全起見,如果您在運(yùn)行 Windows,請務(wù)必嚴(yán)格遵守標(biāo)準(zhǔn) Windows CMD shell。

Java

您的開發(fā)機(jī)器上需要一個(gè) Java Development Kit (JDK)。要檢查該工具包是否已安裝,請輸入以下命令:

  1. $ javac -version 

如果此命令發(fā)現(xiàn)一個(gè) JDK 版本,那么可以繼續(xù)使用。否則,請參見 參考資料 中的鏈接安裝最新版 JDK。安裝完成后,將 JDK 的 bin 文件夾添加到您的 PATH 并重復(fù)上述命令。

Ant

Android 附帶了自己的 Ant 版本,但 Ruboto 還需要從它自己的腳本訪問 Ant。如果您沒有安裝獨(dú)立版 Ant。同樣,將它的 bin 文件夾添加到您的 PATH。確保能夠運(yùn)行 Ant 命令。

Android

訪問 Android Developer Site,安裝適用于您的操作系統(tǒng)的 Android SDK(參見 參考資料)。安裝完成后,運(yùn)行 Android 的 tools 文件夾中的 android 命令。這將啟動(dòng) SDK 管理器,如圖 2 所示。您可能想安裝以下包,它們列示在 Available packages 下方。

SDK Platform Android 2.2, API 8

Android SDK Tools(修訂版 8)

Android SDK Platform-tools(修訂版 1)

圖 2. Android SDK and AVD Manager

顯示一列可用包的窗口

打開 Android SDK and AVD Manager 的 Virtual devices 部分,創(chuàng)建一個(gè)用于開發(fā)的 Android 映像。如圖 3 所示,創(chuàng)建一個(gè)針對 Android 2.2 - API Level 8 的虛擬設(shè)備 Froyo。如果愿意,也可以創(chuàng)建一個(gè)虛擬 SD Card。

圖 3. 創(chuàng)建一個(gè)模擬器

包含以下字段的窗口:name: froyo;target: Android 2.2 - API Level 8, 1024 SD card size;skin: default, hardware

Ruboto 將在您的設(shè)備上運(yùn)行,但是,如果您擁有對任何文件夾的寫權(quán)限,那么開發(fā)工作將會(huì)輕松得多,這就需要使用模擬器或 root 設(shè)備。本文余下部分將討論如何使用模擬器。這個(gè)項(xiàng)目完成后,它在運(yùn)行軟件版本 2.2 或更高版本的 Android 設(shè)備上的效果一樣好。

將 Android 的 platform-tools 和 tools 目錄添加到您的 PATH?,F(xiàn)在,您應(yīng)該能在命令提示中運(yùn)行清單 1 中的命令。

清單 1. 從您的命令提示運(yùn)行命令

  1. $ aapt version 
  2. $ adb --version 

JRuby

JRuby 提供一個(gè)非常簡單的安裝方法:只需訪問 http://jruby.org/getting-started 并遵循安裝說明即可。通過運(yùn)行以下命令驗(yàn)證安裝是否成功:

  1. $ jruby -v 

由于 Ruboto 被托管在一個(gè)安全服務(wù)器上,因此需要安裝 jruby-openssl gem 以下載它。為此,執(zhí)行以下命令:

  1. $ gem install jruby-openssl 

您可能還想安裝 rake,這是 make 或 ant 的 Ruby 對等物。輸入以下命令:

  1. $ gem install rake 

最后,是時(shí)候安裝 Ruboto 本身了。Ruboto 被打包為一個(gè) gem,因此安裝很容易。輸入以下命令:

  1. $ gem install ruboto-core 

創(chuàng)建 Ruboto 項(xiàng)目

Ruboto 將為您從頭創(chuàng)建一個(gè) Android 項(xiàng)目,這將確保您的清單文件(manifest)正確設(shè)置,腳本被放置到正確的集合中,且您能訪問必要的庫。您應(yīng)該采用這種方法,而不是試圖自己創(chuàng)建或修改一個(gè)現(xiàn)有 Android 項(xiàng)目。

要?jiǎng)?chuàng)建項(xiàng)目,切換到 project 文件夾,輸入以下命令:

  1. $ ruboto gen app  
  2. --package us.cirion.ruboto.demo 
  3. --path fishmonger  
  4. --name Fishmonger  
  5. --target android-8  
  6. --activity Fishmonger 

這條命令將執(zhí)行以下操作:

gen app 告知 Ruboto 從頭開始創(chuàng)建一個(gè)新 Android 項(xiàng)目。

--package 提供唯一的 Android 包名。

--path 告知 Ruboto 將項(xiàng)目存儲(chǔ)在哪里;這必須是一個(gè)新文件夾名。

--name 定義用戶可見的應(yīng)用程序名;這不需要是唯一的。

--target 指定針對哪個(gè) Android 版本編譯項(xiàng)目。對于本文,您必須使用 android-8。一個(gè)可選參數(shù) --min_sdk 聲明您的應(yīng)用程序可以在較早的 Android 版本上運(yùn)行,這里省略此參數(shù)。

--activity 是一個(gè)可選參數(shù),它告知 Ruboto 生成一個(gè)新的 Android Activity 并初始化它。

您可以探索 fishmonger 目錄的內(nèi)容。Ruboto 已經(jīng)自動(dòng)生成了構(gòu)建和運(yùn)行一個(gè)基本 Activity 所需的所有 Android 文件。由于此應(yīng)用程序?qū)l(fā)送 SMS 消息,您需要在 AndroidManifest.xml 文件中進(jìn)行一個(gè)更改。在該文件中,將下面這個(gè)標(biāo)記插入為 元素的第一個(gè)子元素:

  1. <uses-permission android:name="android.permission.SEND_SMS" /> 

如果您省略這個(gè)權(quán)限,您仍然能夠構(gòu)建并加載您的腳本,當(dāng)您的應(yīng)用程序試圖發(fā)送一條 SMS 消息時(shí),您將遇到一個(gè)運(yùn)行時(shí)錯(cuò)誤。

運(yùn)行默認(rèn)項(xiàng)目

Ruboto 以開箱即用的方式生成了一個(gè) Activity 和腳本,它們將在設(shè)備或模擬器上安裝和運(yùn)行。如果您的模擬器還沒有運(yùn)行,可以使用以下命令啟動(dòng)它:

  1. $ emulator -avd Froyo 

等待模擬器啟動(dòng)到主屏幕。要確保所有 Ruboto 文件正確構(gòu)建并部署,cd 到 fishmonger 目錄并運(yùn)行以下命令:

  1. $ rake install 

如果遇到錯(cuò)誤,嘗試再次運(yùn)行此命令;有時(shí)連接在構(gòu)建過程中會(huì)超時(shí)。最初構(gòu)建需要一些時(shí)間,但后續(xù)更新速度就快得多。安裝完成后,在您的模擬器中查找標(biāo)簽為 Fishmonger 的圖標(biāo)。啟動(dòng)它并等待一會(huì)兒。在本文撰寫之時(shí),Ruboto 引擎加載需要一點(diǎn)時(shí)間。最終,您將看到與圖 4 類似的屏幕。

圖 4. 模板 Ruboto 活動(dòng)

左邊有一個(gè)窗口,右邊有一個(gè)軟鍵盤和一些控制按鈕的模擬器

定制項(xiàng)目

現(xiàn)在我們設(shè)置 Fishmonger 應(yīng)用程序。首先,您將添加自然語言支持。Ruby 擁有一個(gè)名為 linguistics 的優(yōu)秀 gem,提供許多英語語言功能。在本文撰寫之時(shí),Ruboto 還不能處理 linguistics 庫的嵌套目錄結(jié)構(gòu),因此,請您下載本文的 linguistics zip 文件,將其內(nèi)容解壓到 fishmonger\assets\scripts 中(參見 下載 部分的鏈接)。這是一個(gè)庫存 linguistics gem,被修改來扁平化目錄結(jié)構(gòu)。將來,您應(yīng)該能夠只綁定這個(gè) gem 和您的 Ruboto 腳本。

編寫腳本

現(xiàn)在您準(zhǔn)備好處理項(xiàng)目核心部分了。Ruboto 框架負(fù)責(zé)處理所有 Java 代碼和 Android 基礎(chǔ)架構(gòu),因此,您的所有工作都可以在 fishmonger.rb 中完成。清除該文件的默認(rèn)內(nèi)容。首先添加清單 2 中的文本。

清單 2. 腳本依賴項(xiàng)

  1. require 'ruboto.rb' 
  2. require 'linguistics' 
  3. include Linguistics::EN 
  4.  
  5. import "android.telephony.SmsManager" 
  6.  
  7. ruboto_import_widgets :Button, :EditText, :LinearLayout, \ 
  8.   :RadioGroup, :RadioButton, :TextView 

前兩行加載 ruboto 和 linguisitics 庫。include 命令將使英語語法在您的模塊中可用。

第一個(gè)導(dǎo)入對于 JRuby 用戶比較眼熟:您正在添加對另一個(gè)庫的支持。注意,在本例中,您實(shí)際上正在使用一個(gè) Android Dalvik 庫,而不是標(biāo)準(zhǔn) Java 庫的一部分。Ruboto 將在運(yùn)行時(shí)使用反射(reflection)來加載這個(gè)類并使其對您可用。

ruboto_import_widgets 的功能與 import 相似。在本例中,您正在添加一些 Android 特有 UI 小部件。這些小部件通常用于 Android 活動(dòng)中,Ruboto 添加一些方便的方法,便于您輕松配置 UI。

下面,定義腳本的 handle_create 方法,如清單 3 所示。

清單 3. 配置屏幕

  1. $activity.handle_create do |bundle| 
  2.   setTitle 'Freddy\'s Fresh Fish' 
  3.  
  4.   setup_content do 
  5.     linear_layout :orientation => LinearLayout::VERTICAL do 
  6.       text_view :text => "What would you like to order?" 
  7.       @group = radio_group do 
  8.         radio_button :text => "Tuna":id => 0 
  9.         radio_button :text => "Trout":id=> 1 
  10.         radio_button :text => "Salmon":id => 2 
  11.         radio_button :text => "Crab":id => 3 
  12.         radio_button :text => "Lobster":id => 4 
  13.       end 
  14.       @quantity = edit_text :hint => "Quantity" 
  15.       button :text => "Place Order" 
  16.     end 
  17.   end 

handle_create 在用戶啟動(dòng)應(yīng)用程序時(shí)調(diào)用。在 Android 中,這是您處理必要設(shè)置的地方。標(biāo)準(zhǔn) Android 應(yīng)用程序通常使用 XML 定義布局,但在 Ruboto 中,需要通過腳本定義布局。

Ruboto 的功能在您的腳本和 Android 之間架起一座橋梁。無論您擁有 Ruby 背景還是 Android 背景,您都應(yīng)該能夠明白setup_content 中發(fā)生的事。您正在創(chuàng)建一個(gè)垂直布局,將幾個(gè)小部件堆疊在一起。這些小部件包括文本,幾個(gè)用于選擇要預(yù)訂的魚類種類的單選按鈕,一個(gè)用于輸入數(shù)量的可編輯文本字段,以及一個(gè)用于下訂單的按鈕。可以使用 Ruby 語法來配置您的小部件,而不是 Android 中通常使用的更繁瑣的 Java 語法。

設(shè)置每個(gè) radio_button 上的 id 屬性有好處,它向您提供一種簡單方法,以便稍后查看選中了哪個(gè)按鈕。

Android 將自動(dòng)處理與單選按鈕和可編輯文本字段之間的所有用戶交互。唯一剩下的工作是定義如何處理 Place Order 按鈕,如清單 4 所示。

清單 4. 下訂單

  1. handle_click do |view| 
  2.    if view.text == "Place Order" 
  3.      count = @quantity.text 
  4.      food = @group.child_at(@group.checked_radio_button_id).\ 
  5.        text.downcase 
  6.      order = Linguistics::EN::plural(food,count) 
  7.      SmsManager.default.send_text_message("4155551234", \ 
  8.        nil"Please send #{count} #{order}"nilnil
  9.      finish 
  10.    end 
  11.  end 
  12. nd 

如果您以前編寫過 Android 應(yīng)用程序,您可能會(huì)注意到,您正在使用一種不同的范式來處理選擇。Android 開發(fā)人員傾向于為每個(gè)可選項(xiàng)目編寫一些獨(dú)特的單擊處理程序。但是,在 Ruboto 中,更簡單的方法是為您的 Activity 創(chuàng)建一個(gè)全局單擊處理程序,在那里測試用戶單擊了哪個(gè)項(xiàng)目。

您提取用戶選擇的魚的數(shù)量和種類。如果用戶沒有選中一個(gè)單選按鈕,Ruboto 將在內(nèi)部優(yōu)雅地處理這個(gè)運(yùn)行時(shí)錯(cuò)誤。否則,您將把文本傳遞到 linguistics 庫并請求它為您創(chuàng)建適當(dāng)?shù)拿~形式。這個(gè)庫能處理不同的復(fù)數(shù)規(guī)則,因此它將生成 1 salmon、2 salmon、1 crab、2 crabs 之類的值。它甚至能識別手寫的數(shù)字,因此它還將生成 one lobster 和three lobsters 之類的詞組。對于一行代碼來說,這是令人非常印象深刻的行為,展示了它利用現(xiàn)有腳本向您的應(yīng)用程序輕松添加功能的能力。

類似地,發(fā)送一條 SMS 消息只需一行調(diào)用,調(diào)用一個(gè)方便的 Android 方法。Ruboto 允許您使用 Ruby 式語法調(diào)用這個(gè)方法;對等的 Java 代碼將是 SmsManager.getDefault().sendTextMessage()。您提供接收者的電話號碼和要發(fā)送的消息,并為可選參數(shù)傳遞 nil。如果您 正在一個(gè)設(shè)備上運(yùn)行并想實(shí)際發(fā)送一條 SMS 消息,可以替換為一個(gè)實(shí)際電話號碼。如果您想在模擬器中測試,則可以替換為模擬器的端口號,比如 “5554”。

運(yùn)行腳本

Ruboto 最強(qiáng)大的一個(gè)方面是允許通過簡單地加載一個(gè)已更新腳本來更改功能。即使您已經(jīng)完全更改了這個(gè)應(yīng)用程序的功能,也不需要重新構(gòu)建應(yīng)用程序或重新加載 APK。相反,只需在命令行輸入以下命令:

  1. $ rake update_scripts 

這條命令將把 linguistics 腳本和您的新 fishmonger 腳本復(fù)制到模擬器或一個(gè)已連接設(shè)備。當(dāng)您重新啟動(dòng)應(yīng)用程序時(shí),將看到您的新屏幕,如圖 5 所示。

圖 5. Android 預(yù)訂頁面

顯示一些預(yù)訂 tuna、crab、trout、salmon 和 lobster 的選項(xiàng)以及一個(gè)數(shù)量和一個(gè)預(yù)訂按鈕的屏幕

如果您正在運(yùn)行一個(gè)非根設(shè)備(non-rooted device)或正在更改 Java 文件或 Android 清單文件,可以通過再次輸入 rake 安裝命令來加載更新。注意,即使是非根設(shè)備也可以實(shí)時(shí)更新它們的腳本;例如,您可以從 Internet 下載新腳本并在運(yùn)行時(shí)生成它們。固件限制僅適用于通過您的 USB 連接推送文件。

繼續(xù)試驗(yàn)這個(gè)應(yīng)用程序。當(dāng)您進(jìn)行了一個(gè)有效選擇并按下預(yù)訂按鈕后,屏幕將自動(dòng)關(guān)閉。如果您使用一個(gè)有效的接收者地址,他們將很快收到您的消息。圖 6 顯示了一個(gè)非常繁忙的海鮮店的最新訂單列表。

圖 6. 來自 Ruboto 腳本的標(biāo)準(zhǔn)化訂單

顯示 4 個(gè)不同訂單的屏幕

結(jié)束語

Ruboto 仍然是一個(gè)早期項(xiàng)目,但即使處于現(xiàn)在的狀態(tài),它已經(jīng)能提供一種非常靈活有用的方法來編寫和分發(fā) Android 軟件。Ruboto 的成功歸功于 JRuby 和 Android 的優(yōu)勢:JRuby 已經(jīng)完成了以 Java 語言編寫一個(gè)功能齊備的 Ruby 解釋器的艱巨工作,Android 的 Dalvik 工具集提供了一種令人印象深刻的從標(biāo)準(zhǔn) Java 字節(jié)碼到它的自定義 Dalvik 字節(jié)碼的轉(zhuǎn)換。

如您所見,Ruboto 腳本可能會(huì)非常短,但提供來自 Ruby 和 Android 的強(qiáng)大功能?;旌虾推ヅ?Ruby 腳本、Ruby 和 Java 語法以及 Android API 的能力向您提供了許多提高生產(chǎn)力的選項(xiàng)。

Ruboto 是位于客戶端和服務(wù)器兩端的開發(fā)人員之間的一個(gè)有用橋梁。Android 開發(fā)人員將欣賞它的反射功能,該功能向他們提供實(shí)時(shí)大幅更新應(yīng)用程序功能的能力。Ruby 開發(fā)人員將擁有一種相當(dāng)便捷的方法來結(jié)合他們的腳本技術(shù)和移動(dòng)平臺(tái),利用現(xiàn)有 Ruby 代碼來創(chuàng)建新應(yīng)用程序。這兩類開發(fā)人員都將懷著極大興趣,密切關(guān)注這個(gè)項(xiàng)目的進(jìn)展。

責(zé)任編輯:佚名 來源: IBM
相關(guān)推薦

2012-04-09 11:32:40

ibmdw

2009-12-14 11:12:55

Ruby運(yùn)行

2009-12-14 13:47:28

Ruby簡單語法

2009-12-18 16:27:41

Ruby解析Json

2009-12-17 16:50:54

Ruby簡單編寫

2009-12-15 15:19:30

Ruby訪問控制

2013-03-26 13:38:12

Android per

2014-07-17 11:36:27

Android Stu使用教程

2013-03-28 16:31:48

AIDL的簡單使用Android中AID

2009-12-14 13:27:06

Ruby區(qū)間

2009-12-15 14:46:04

Ruby類常量

2014-08-08 09:39:40

httpClient

2009-12-18 14:10:29

Ruby訪問剪貼板

2011-05-27 16:57:13

Android widget

2010-01-26 14:43:53

Android數(shù)據(jù)存儲(chǔ)

2013-05-14 10:37:10

AIR Android設(shè)置訪問權(quán)限

2011-03-30 16:20:35

RubyJRubyAndroid

2018-07-02 13:10:05

Android短信驗(yàn)證

2011-09-09 16:00:02

Android Web實(shí)例

2010-02-05 17:02:13

Android
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號