當前位置:首頁 » 安卓系統 » androidair開發

androidair開發

發布時間: 2023-07-25 16:22:03

『壹』 如何讓應用隨系統啟動 android

如果您是一位Java Android開發人員,那麼實現一個隨系統自啟動的應用對您來說應該非常Easy,但對於一位使用Adobe Flash技術開發應用,然後用AIR打包機制製作.APK的開發者來說,實現這個功能卻不是很輕松的。Flash的優勢就是跨平台,一位Flash開發者可以使用自身積累的知識體系,以最小的學習成本進入Android開發的世界。AIR在打包的時候對我們隱藏了很多細節,這樣一方面可以減少我們的學習阻力,一方面卻也因為這個不透明的過程造成一些困擾(後面詳述)。如果我們要實現一個功能,AIR核心API卻沒有提供實現,就成了非常麻煩的事情,不過現在好在AIR已經提供了一種擴展自己功能的機制,就是ANE。對於Android開發來說,我們可以使用Java代碼來完成AIR本身不提供的功能。

關於ANE的基本知識,您可以參閱這里(中文)

很棒的ANE for Android實例教程http://t.cn/SbsI5j跟這個過一遍就明白ANE的原理,創建過程和使用方式了。

下面我們來看看如何讓一個AIR打包的APK實現隨系統自己啟動的功能(當然也要藉助ANE了)。

APK的AndroidManifest.xml分析
在動手之前,您最好先把AIR打包產生的APK文件做一下分析,了解它的特性,後面就可以少走一些彎路。將.apk文件直接改擴展名為.zip,解壓即可看到它的結構。注意AndroidManifest.xml,這是Android應用非常核心的一個配置文件。這個文件是AIR打包自動產生的,但是和AIR應用本身的XML配置文件也是有管理的(AIR應用的XML配置中的android節點部分會被合並到AndroidManifest.xml,這樣方便我們做一些許可權設定等等)。

解壓得到的AndroidManifest.xml是個二進制的XML文檔,無法用文本工具查看,您可以先使用AXMLPrinter2.jar將它轉換為普通文本格式即可閱讀。

這個文件中我們要注意幾個細節:

1. manifest節點的package屬性不能由我們設定,這是AIR打包的時候自動設定的,規則是「air.應用ID」,比如我們的應用ID是TestAppANEs,那麼這里的設置就是package=」air.TestAppANEs」

2. 在application部分會自動產生一個activity,名稱是.AppEntry。activity相當於Android應用的視圖,AIR會自動產生一個視圖,用來承載我們的Flash內容。

了解這些細節之後,我們就可以繼續實施ANE部分的開發了。

ANE實現
創建ANE項目的過程就不細述了,您可以參閱Adobe的文檔。這里只說和隨系統啟動相關的部分。您首先要創建一個包,命名和manifest節點的package屬性保持一致,比如這里應該是air.TestAppANEs。這個地方要非常注意,包名必須遵循這樣的結構,否則運行時會找不到類。

然後在這個包中創建一個Java類:BootBroadCastReceiver,繼承BroadcastReceiver,完整代碼如下:

然後將Java項目編譯為JAR包,然後建立一個ActionScript庫項目,最終和JAR包打包為一個ANE文件(略過N多細節,請參閱Adobe文檔)。

這里再補充兩個細節問題,首先是ADT打包,ANE打包的參數確實很容易弄錯,估計第一次打包的同學很難能一次性通過,最後一個參數的點前面還有一個空格,提醒您千萬注意了 -platform Android-ARM -C .Android-ARM .

其次是您應該給extension.xml設置一個 ,並使用ActionScript實現一個模擬功能實施,並打包到ANE中,這樣方便您在PC測試,否則您會得到不支持調試的提示。
和主項目的整合
ANE製作完畢後,您可以用Flash Builder,在您的主項目上點擊右鍵,屬性,庫構建路徑,在ANE面板上,加入剛才製作的ANE文件(Flash Builder會自動在AIR應用的XML配置文件中加入這個ANE的ID,確保這個ID必須有)。然後在發布的時候,ANE的部分還有一個對勾(確定是否包含),一定記得點上,不然就會找不到類。
先別急著打包,我們還需要修改一下配置文件,打開AIR應用的XML配置文件,找到android部分,加入.BootBroadCastReceiver的定義,完整結構如下:

注意.BootBroadCastReceiver這個定義很關鍵,以.開頭才能實現隨系統啟動的功能。
然後…就沒有然後了。您可以測試您的應用,安裝後讓手機重啟,不出意外的話,您可以看到自己的應用在系統啟動完畢後,就會自己啟動並顯示主界面。
您也可以不顯示主界面,而是注冊一個Service,實現後台的通知和提醒。

『貳』 Android上一個很好用的App—AirDroid

用Mac做開發的小夥伴,應該經常使用Mac電腦自帶的Airdrop。用它能夠輕松實現Mac電腦和手機的文件互傳。我經常使用Airdrop,把iPhone手機裡面的照片、視頻、或者其他文件發送到電腦進行保存和二次編輯。這也是我一度不願意使用Android手機的原因,蘋果爸爸打造的全方位生態,一旦入駐,就再也不想換到Android的蠻荒陣營。但是為了完成學習Android的目標而不得不用Android手機的我,最近發現有第三方在Android上實現了類似Airdrop的功能——[AirDroid]。( https://www.airdroid.com/zh-cn/ )。

「AirDroid」是一個全平台應用,能夠在Android,iPhone,Mac和Window平台上統一使用。但是對免費用戶限制了流量,每月只有200M流量。但是對於一般用戶,傳送文字文件的話,完全夠用了。除了傳送文件,「AirDroid」還可以讀取手機聯系人,簡訊和撥打電話的功能,不過作為開發的程序猿,這些功能使用就很少了。由於工作性質的不同,對你的工作,或許還有其他方便的功能,等待你去發現。

作為提升工作的工具,值得使用。

關注和喜歡都是對我的鼓勵和支持~

『叄』 Android開發之藍牙(Bluetooth)

在上一篇中有介紹了Wifi與網路連接處理
Android開發之WiFi與網路連接處理
下面,來繼續說說Android中藍牙的基本使用。

Bluetooth是目前使用的最廣泛的無線通訊協議之一,主要針對短距離設備通訊(10米),常用於連接耳機、滑鼠和移動通訊設備等。

值得一提的是:
android4.2新增了部分新功能,但是對於Bluetooth熟悉的人或許開始頭疼了,那就是Android4.2引入了一個新的藍牙協議棧針BLE。谷歌和Broadcom之間的合作,開發新的藍牙協議棧,取代了基於堆棧的Bluez。因此市場上出現了老設備的兼容問題,很多藍牙設備在android4.2手機上不能正常使用。

BluetoothAdapter簡單點來說就是代表了本設備(手機、電腦等)的藍牙適配器對象。

first:we need permission
要操作藍牙,先要在AndroidManifest.xml里加入許可權

**下面來看看如何使用藍牙。 **↓↓↓****
Demo已就緒:

返回值:如果設備具備藍牙功能,返回BluetoothAdapter 實例;否則,返回null對象。

打開藍牙設備的方式:
1.直接調用函數enable()去打開藍牙設備 ;
2.系統API去打開藍牙設備,該方式會彈出一個對話框樣式的Activity供用戶選擇是否打開藍牙設備。

注意: 1.如果藍牙已經開啟,不會彈出該Activity界面。2.在目前大多數Android手機中,是不支持在飛行模式下開啟藍牙的。如果藍牙已經開啟,那麼藍牙的開關 ,狀態會隨著飛行模式的狀態而發生改變。

1. 搜索藍牙設備
使用BluetoothAdapter的startDiscovery()方法來搜索藍牙設備
startDiscovery()方法是一個非同步方法,調用後會立即返回。該方法會進行對其他藍牙設備的搜索,該過程會持續12秒。該方法調用後,搜索過程實際上是在一個System Service中進行的,所以可以調用cancelDiscovery()方法來停止搜索(該方法可以在未執行discovery請求時調用)。

系統開始搜索藍牙設備
^( *  ̄(oo) ̄ ) ^ 系統會發送以下三個廣播:

2.掃描設備

3.定義廣播接收器接收搜索結果

4.注冊廣播

獲取附近的藍牙設備

第一步建立連接:首先Android sdk(2.0以上版本)支持的藍牙連接是通過BluetoothSocket建立連接,服務端BluetoothServerSocket和客戶端(BluetoothSocket)需指定同樣的UUID,才能建立連接,因為建立連接的方法會阻塞線程,所以伺服器端和客戶端都應啟動新線程連接。

(這里的服務端和客戶端是相對來說的)
兩個藍牙設備之間的連接,則必須實現服務端與客戶端的機制。
當兩個設備在同一個RFCOMM channel下分別擁有一個連接的BluetoothSocket,這兩個設備才可以說是建立了連接。

服務端設備與客戶端設備獲取BluetoothSocket的途徑是不同的。
1,服務端設備是通過accepted一個incoming connection來獲取的,
2,客戶端設備則是通過打開一個到服務端的RFCOMM channel來獲取的。

服務端
通過調用BluetoothAdapter的(String, UUID)方法來獲取BluetoothServerSocket(UUID用於客戶端與服務端之間的配對)

客戶端
調用BluetoothService的(UUID)方法獲取BluetoothSocket(該UUID應該同於服務端的UUID)。
調用BluetoothSocket的connect()方法(該方法為block方法),如果UUID同服務端的UUID匹配,並且連接被服務端accept,則connect()方法返回。

數據傳遞,通過以上操作,就已經建立的BluetoothSocket連接了,數據傳遞無非是通過流的形式
獲取流

該類就是關於遠程藍牙設備的一個描述。通過它可以和本地藍牙設備---BluetoothAdapter連接通信。

好多東西我也不知道怎麼描述,下面給出Demo:
剛好有剛學習的小夥伴問我ListView怎麼用,那我就用ListView。

源碼
RairDemo
GitHub: https://github.com/Rairmmd/android-demo
Coding: https://coding.net/u/Rair/p/RairDemo/git

『肆』 安卓Adobe AIR有什麼用

Adobe Air是利用Adobe公司的Flash技術開發的視頻播放平台。這個視頻播放終端運行平台 它主要的功能就是可以在網上 看視頻,跟Flash 功能相同,但是更強大。
對於用戶來說,Adobe AIR 實現的跨平台應用,使其不再受限於不同的操作系統,在桌面上即可體驗豐富的互聯網應用。並且是比以往更低的資源佔用、更快的運行速度和順暢的動畫表現。
對Android系統要求:

『伍』 Android上開發Airplay Server端的問題求助

前段時間剛做完Airplay的相關應用,現在就開發的一點經驗和大家分享一下。

首先,說說Airplay吧,Airplay可以將iPhone,iPad或iPodtouch等設備上的視頻、音頻以及圖片傳輸到第三方認證設備上,一般是在AppleTV或Air port設備上,但其實,現在很多第三方的android設備也可以支持Airplay了,像阿里雲或小米的盒子都支持Airplay投影了,而且效果都還不錯。

其實,Airplay算是蘋果公司定義的一種協議,或是一種技術吧,所以,按照慣例,這項技術是不開源的,對外封閉。而Android端,可以使用一套的多屏互動方案的,叫做DLAN,即Digital Living Network Alliance,它的協議是公開的。在次,得感謝諸多技術大牛,破解了Airplay,包括音頻投影服務中使用的RSA私鑰,和一份具體的協議說明(http://nto.github.io/AirPlay.html)。
下面,就Airplay協議內容大概的說明一下,當然,大家直接看上述地址中的內容也許更清楚,本人能力有限,大概的說說我的部分理解。

1.使用multicastDNS協議來進行服務發現,在android端可以用JmDNS來實現。

一般我們會發布兩個服務:AirTunes service(RAOP)和AirPlay Service,前者用於音頻流的投影,後者用於圖片和視頻內容的投影。

2.協議內容(一):AirTunesService

2.1.協議中的音頻流支持RTSP協議。

1)IOS設備向服務端發送的RTSP請求包括
ANNOUNCE:告訴RTSP伺服器關於流的各種屬性
SETUP:告訴RTSP伺服器初始化一個record session,同時通知必要的傳輸信息。
RECORD:請求伺服器開始流的傳輸
FLUSH:請求停止傳輸
TEARDOWN:請求結束RTSP會話
PAUSE, OPTIONS,
GET_PARAMETER,
SET_PARAMETER:可用於音量控制,Metadata:其中包括音頻曲名,歌手名,專輯名,封面圖片,播放進度信息……
POST and GET
2)RTP流,用於傳輸音頻數據等。(如果說,RTSP用於發起/終結流媒體,那麼RTP則傳輸流媒體數據 )
這里音頻包是幾乎完全兼容RTP協議。RTP包按有效載荷的不同類型分為以下幾種:

Audio packets:其有效載荷為經過加密的audio data

Sync packets:服務端每秒鍾會收到一個同步包,來將RTP中的timestamps與用於始終同步的NTP time關聯起來

Retransmit packets:對丟失的audio packets進行重傳

Timing packets:用於音頻的主時鍾同步

2.2音頻數據加密解密

Client:客戶端首先會用RSA公鑰,利用OAEP加密方式自動生成一個隨機的128位AES key,然後和rsaaes key,aesiv一起發送給Server。

Sever:服務端利用指定的RSA私鑰來解密AES key,然後將解密結果返回給Client。

Client:客戶端利用RSA公鑰要解密收到的數據,若解密結果和之前自動生成的隨機數一致,則表明服務端解密成功。

『陸』 Adobe AIR for Android,,,手機上安裝了有什麼用

首先,你要明白所謂Adobe AIR
AIR是Adobe新推出的一個開發平台,涉及 Flash、HTML、Ajax等酷炫元素。
如果你想看看效果可以下載AIR IPHONE模擬器或國外的一些作品
http://www.adobe.com/cn/procts/air/swf/Air_homepage_fma.swf
關於Adobe AIR
Adobe® Integrated Runtime (AIR™)允許你利用現有的web開發技能(包括Flash, Flex, HTML, JavaScript, Ajax)優勢,建立和配置跨平台(或跨操作系統)的桌面RIA(Internet Applications)應用。
AIR能使你在熟悉的環境下工作,去利用你覺得的最舒適的工具,並且通過支持Flash, Flex, HTML, JavaScript, and Ajax,去建立接近你需要的盡可能好的體驗。
比如應用程序能用下列一個或一個技術的組合來開發:
Flash / Flex / ActionScript
HTML / JavaScript / CSS / Ajax
PDF can be leveraged with any application
因此,AIR 應用程序可以是下列幾種情況:
基於 Flash or Flex: 基礎內容是 Flash/Flex (SWF)的應用程序
基於 Flash or Flex 附帶HTML 或 PDF. 基礎內容是Flash/Flex (SWF) 帶有 HTML (HTML, JS, CSS) 或PDF內容的應用程序
HTML為基礎. 基礎內容是HTML, JS, CSS的應用程序
HTML為基礎附帶 Flash/Flex或 PDF. 基礎內容是HTML帶有Flash/Flex (SWF)或PDF 內容的應用程序
用戶與AIR應用程序的交互操作,與他們使用本地桌面程序的方法是一樣的。AIR虛擬機runtime一旦被安裝在用戶的計算機上,AIR應用程序就能象其他桌面應用程序一樣,被安裝和運行。
由於 AIR 是一個應用程序運行時,它具有很少或沒有可見的用戶界面,您可以對應用程序和經驗,為用戶提供的完全控制。 運行庫用於部署應用程序提供一個一致的互操作系統平台和框架,因此消除了跨瀏覽器測試通過跨桌面確保一致的功能和交互。 開發適用於特定的操作系統,而你不是面向運行庫。 這有多項好處:
(翻譯別扭請看原文Since AIR is an application runtime, it has little or no visible user interface and you have complete control over the application and the experience it provides to users. The runtime provides a consistent cross-operating system platform and framework for deploying applications and therefore eliminates cross-browser testing by ensuring consistent functionality and interactions across desktops. Instead of developing for a specific operating system, you target the runtime. This has a number of benefits: )
應用程序開發跨越多個平台,這些都不需要你額外的工作。
應用程序可以用你熟悉的web技術和設計模式快速建立,而不用學習傳統的復雜的本地桌面開發技術,不用學習底層開發語言如c或c++,也不需要學習每一個特定的操作系統的底層API技術。
當開發基於AIR的應用程序時,你可以利用的框架和API的優勢
特定的基於AIR運行時的APIs ,和 AIR 框架
在swf文件里使用的ActionScript APIs 和Flex 框架
AIR提供一個新的範例,大大地改變了應用程序被創造,部署和體驗的方式。 您取得更多創造性的控制,並且能擴展您的Flash, Flex, HTML, 和基於Ajax的應用到桌面應用,無需學會傳統桌面開發技術。(翻譯不好,下面可以自己看看原文)AIR delivers a new paradigm that dramatically changes how applications can be created, deployed, and experienced. You gain more creative control and can extend your Flash, Flex, HTML, and Ajax-based applications to the desktop, without learning traditional desktop development technologies.

" for Android" 就是使用於安卓操作系統的版本。
希望我的回答能給樓主點幫助。

熱點內容
c語言中的temp 發布:2025-02-05 02:43:08 瀏覽:123
阿里雲伺服器共享電腦 發布:2025-02-05 02:42:18 瀏覽:417
伺服器有多少台電腦 發布:2025-02-05 02:40:41 瀏覽:447
安卓手機為什麼最新微信安裝不了 發布:2025-02-05 02:31:03 瀏覽:106
安卓手機什麼時候開售 發布:2025-02-05 02:14:15 瀏覽:660
編程車模型 發布:2025-02-05 02:09:55 瀏覽:680
雅馬哈天劍哪個配置好 發布:2025-02-05 02:00:35 瀏覽:170
我的世界國際服推薦118伺服器 發布:2025-02-05 01:50:48 瀏覽:46
普通電腦做伺服器怎麼操作 發布:2025-02-05 01:46:22 瀏覽:628
原神為什麼同伺服器加不起好友 發布:2025-02-05 01:41:03 瀏覽:337