香港三级日本三级韩级人妇,青青热在线精品视频免费观看,国产精品女教师在线,91福利一区入口

    <i id="0meuk"><tr id="0meuk"><dfn id="0meuk"></dfn></tr></i>

    <bdo id="0meuk"><tr id="0meuk"></tr></bdo>
    

          安卓小程序開發(fā)教程(安卓小程序開發(fā)入門)

          小程序開發(fā) 2326
          今天給各位分享安卓小程序開發(fā)教程的知識,其中也會對安卓小程序開發(fā)入門進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、微信小程序來啦 關于它的使用你知道怎么操作嗎

          今天給各位分享安卓小程序開發(fā)教程的知識,其中也會對安卓小程序開發(fā)入門進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!

          本文目錄一覽:

          微信小程序來啦 關于它的使用你知道怎么操作嗎

          今天凌晨剛過,此前傳聞已久的微信小程序功能就正式的來到了大家面前。作為繼公眾號、服務號、企業(yè)號之后的微信又一重大功能,相信很多朋友都對它十分期待。那么小程序究竟是什么?怎么找到小程序?小程序有哪些使用技巧?小程序能否干掉APP?它又會為行業(yè)帶來哪些改變呢?別著急,在接下來的這篇文章里,你將找到你想要的全部答案。

          微信小程序

          什么是小程序?

          根據(jù)微信官方給這款產(chǎn)品的定義來看,微信小程序?qū)儆谝环N無需安裝,即用即開的“手機應用”。用戶通過掃描二維碼、使用搜索功能以及點擊朋友分享給自己的鏈接就可以進入小程序。不過值得注意的是,目前小程序還不支持分享到朋友圈。

          從目前的使用上看,小程序在很多方面做得都十分接近APP??梢栽谧烂鎰?chuàng)建圖標、支持后臺單獨顯示、以及擁有美觀的UI界面。

          什么是微信小程序

          如何找到小程序?

          和傳統(tǒng)的應用程序不同,小程序并不能在手機的應用商店中進行搜索。而其“父親”微信內(nèi)同樣沒有提供小程序商店的入口。那么,這樣的情況下我們該如何找到小程序呢?

          微信官方為我們提供了三種進入到小程序的方式。在知道小程序名字的時候,用戶可以通過搜索功能直接對其進行搜索。而微信更希望的小程序使用場景則是通過掃碼進入。例如:在公交站,你可以直接掃描站牌的二維碼獲取公交到達的時間信息等等。除此之外,微信還為用戶提供了分享功能,當然,目前分享功能僅限分享給朋友或羣組,還不能分享到朋友圈。

          如何找到微信小程序

          當然,對于安卓用戶來說,在小程序頁面內(nèi)也為用戶提供了添加到桌面的選項,讓用戶可以更加方便的打開常用的小程序。微信內(nèi)的“發(fā)現(xiàn)”當中,也為使用過的小程序提供了入口。

          怎么使用小程序小程序使用技巧

          事實上,小程序的使用邏輯與Apps的使用邏輯是相同的,小程序更像是輕量版的APP應用。不過值得注意的是,小程序本身的屬性決定了它有著很多自己的特色。接下來,筆者就與大家一起聊一聊小程序的使用技巧。

          如何使用微信小程序

          安卓用戶可將小程序發(fā)送到桌面

          因為系統(tǒng)更加開放的原因,安卓用戶將可以直接將小程序發(fā)送到桌面生成程序圖標。根據(jù)筆者對小程序圖標設計的觀察,目前小程序和APP的圖標設計存在著一定的區(qū)別。不過筆者還不確定究竟是巧合還是軟件開發(fā)商的刻意為之。

          如何將小程序發(fā)送到桌面

          微信小程序圖標有著非常統(tǒng)一的規(guī)范,每個小程序的圖標都是菱角分明的正四邊形。這一點與眾多安卓瀏覽器“將圖標發(fā)送到桌面”的功能十分相似。(圖中第一排為小程序圖標,第二排為瀏覽器書簽圖標,第三排為APP圖標)

          通過掃一掃功能打開應用不支持長按識別

          為了增加與服務號之間的區(qū)分度,微信在入口、推薦方式等很多途徑對小程序作出了限制。除了我們上文已經(jīng)提到的不支持分享到朋友圈之外,微信甚至對于小程序通過掃一掃進入到方式也作出了限制。用戶無法通過識別二維碼的方式進入到小程序當中,而只能通過掃碼的方式進入

          小程序會消耗內(nèi)存

          我們都知道,無需安裝,即用即開是小程序的一大優(yōu)點。不過這并不意味著小程序可以逆天到不消耗資源。當我們使用微信打開小程序的時候,微信所占用的內(nèi)存資源是會明顯上升的。

          小程序消耗的內(nèi)存是多少

          小程序的優(yōu)勢:沒有惱人的通知

          除此之外,沒有惱人的通知同樣是小程序的一大優(yōu)勢。舉個例子,在不進行通知管理的情況下,微信視頻在后臺運行時視頻內(nèi)容推薦總會不時彈出。不過如果使用小程序,這些惱人的推薦內(nèi)容就不會再出現(xiàn)了。不僅如此,可能是小程序推廣期的原因,目前使用小程序觀看視頻即使不是會員也可以觀看5s廣告后跳過廣告,體驗更加出色。

          目前小程序遍及的類目

          目前, 微信官方已經(jīng)開放了包括商業(yè)服務、公益、IT科技、餐飲、旅游、電商平臺等18個大類的開發(fā),通過微信小程序,我們可以完成購物、外賣、生活服務等一系列的活動。不過值得注意的是,很多人關注的“游戲”類目,目前還未開放,所以如果你想玩到小程序游戲,可能還要多等一等。

          小程序優(yōu)勢

          小程序干掉APP?

          在小程序發(fā)布之后,有關小程序干掉APP的言論在互聯(lián)網(wǎng)上可謂是層出不窮。那么接下來,我們就也來談一談,小程序究竟能否干掉APP。

          在筆者前段時間有關小程序的文章中就曾提到:小程序更像是基于H5的“云應用”,而隨著云技術的逐漸普及,云應用會是未來幾乎已無懸念。不過,要說微信小程序?qū)傻鬉PP們,筆者依舊認為是一個“偽命題”。

          首先,微信本身的屬性就已經(jīng)限制了它成為“革命者”的可能。就目前而言,微信本身仍然在APP的范疇之內(nèi);而且,雖然在國內(nèi)應用領域微信幾乎有著最強的號召力和影響力,但是想要靠其一家干掉APP,依舊是一件不可能的事情。

          而另一方面,其實在此之前,例如火狐FireFox OS、Google Chrome OS、阿里YUNOS,已經(jīng)有很多舉足輕重的互聯(lián)網(wǎng)公司正在OS領域?qū)υ茟眠M行探討了。不過由于云計算能力和網(wǎng)絡方面的限制,目前還沒有一家稱得上成功。FireFox OS前年末已經(jīng)“犧牲”,YUNOS的云端應用被壓縮在一個最左屏內(nèi),仍需兼容Android生存,Chrome OS設備雖有所增長,但歸其原因更多的是因為價格低廉。

          綜合來看,似乎在目前的環(huán)境下討論“云應用”普及,還為時過早。

          ● 小程序會帶來哪些改變?

          那么,既然不能干掉APP,小程序又能帶來哪些改變呢?難道小程序的作用真的僅限于“拯救16GB iPhone”嗎?筆者認為,微信小程序的到來至少會帶來下面兩點影響:

          創(chuàng)業(yè)者新的狂歡

          毫無疑問,對于很多創(chuàng)業(yè)者來說,小程序?qū)蔀樗麄冃碌膭?chuàng)業(yè)風口。依托著微信背后巨大的流量資源,風口上的小程序開發(fā)者極有可能會成為下一批“飛豬”。對于開發(fā)者而言,小程序擁有更低的開發(fā)時間和人力資本,簡單來說就是“省錢”,而且它還更容易更新和維護,微信方面對于小程序的政策也十分適合創(chuàng)業(yè)者們:修改無需等待審覈,迭代后馬上能看到效果,這又為開發(fā)者省去了很多麻煩和時間成本。

          其實,這樣的橋段在此之前的公眾號和服務號上就曾上演過。每一次新的東西出現(xiàn)總會有一批抓住紅利獲得成功的人。小程序自然也是其一。

          H5技術的普及

          除此之外,筆者認為小程序可能會帶來的另一大影響則在HTML5技術上。微信小程序是基于H5開發(fā)的程序,但用了類似于JS-SDK的框架(百度以前是clouda框架),提供了更多的接口和組件,讓程序更加流暢,體驗接近原生APP(Native App)。從根本上講,小程序雖然不是H5,但卻與H5有著千絲萬縷的聯(lián)系。

          依靠著微信的影響力,小程序或可以讓如今混亂和普及度不高的H5技術變得更加規(guī)范和大眾化。這一點無論對網(wǎng)頁技術的發(fā)展,還是對于未來云應用的普及,都是強有力的助燃劑。

          后序:致敬蘋果的微信小程序

          直播小程序系統(tǒng)怎么開發(fā),開發(fā)需要多少錢

          直播小程序系統(tǒng)怎么開發(fā),開發(fā)需要多少錢

          如今,不少企業(yè)都想擁有屬于自己企業(yè)或產(chǎn)品的手機APP,但其中最困擾企業(yè)主的問題就是:開發(fā)一款手機APP到底需要多少錢?

          簡單點來說,要視手機APP的需求及質(zhì)量而言,價位一般在幾千到十幾萬左右,更高端的價格更高。

          今天,我們就來詳細分析一下這個問題,請繼續(xù)往下看吧。 

          一、APP開發(fā)款式分為固定款和定制款,兩者的價格均不相同

          固定款:是指直接套用已有的、現(xiàn)成的APP固定模板,報價是固定的,所需要的功能也是固定的,缺點就是客戶拿不到源代碼,也不能根據(jù)企業(yè)需求進行定制,由于源代碼是封裝的,如果企業(yè)以后想進行功能升級或系統(tǒng)維護的話,也不能夠?qū)崿F(xiàn),只能重新開發(fā)一個新的軟件。

          固定款的APP開發(fā)時間短,約2~3日的時間即可完成,費用大約在幾千到幾萬之間。

          定制款:定制款是指APP的功能全部重新開發(fā),過程比較繁瑣,需要美工、策劃、APP開發(fā)(前臺/客戶端/手機端)、后臺程序員等工種協(xié)同完成,大型的、功能復雜的APP甚至需要數(shù)十人的團隊。

          由于APP的功能和設計都是定制的,因此價格會高些。定制款的開發(fā)時間與開發(fā)價格是成正比的,開發(fā)時間長,大約在兩三個月甚至不定的周期里才能完成,而費用大概在幾萬甚至十幾萬左右。

          因此,想要知道開發(fā)一款手機APP需要花費多少錢,企業(yè)主首先必須把APP的詳細需求和功能告知APP開發(fā)公司,開發(fā)公司才能報出一個合理的價格。

          二、手機APP平臺不同,制作成本也不一樣

          現(xiàn)在市面上流行的手機APP制作平臺主要有兩種一般包括兩種系統(tǒng):安卓系統(tǒng)(Android)和蘋果系統(tǒng)(IOS)。

          一般來說,制作蘋果系統(tǒng)的手機APP軟件費用要比安卓平臺的貴一些,因為蘋果公司對蘋果平臺的封閉性和手機APP開發(fā)語言Objective-C的難度,都讓APP開發(fā)者加大了蘋果系統(tǒng)手機APP開發(fā)的難度。

          三、APP制作成本包含參與人員的工資

          通常情況下,開發(fā)一款APP需要產(chǎn)品經(jīng)理、客戶端工程師、后端工程師和UI設計師各一名,這已經(jīng)是制作手機APP應用軟件比較精簡的配置了,所以這些參與人員的工資也是包含在APP制作成本當中的。這些工作人員的月薪加起來可能都會超過4、5萬元。

          四、APP開發(fā)公司的所在地

          需要注意的是,同樣實力的APP開發(fā)公司,在不同的城市也會導致APP的成本費用高一些

          微信小程序藍牙教程--完整版親測

          #使用mpvue 開發(fā)小程序過程中 簡單介紹一下微信小程序藍牙連接過程

          #在藍牙連接的過程中部分api需要加定時器延時1秒到2秒左右再執(zhí)行,原因為何不知道,小程序有這樣的要求

          #1.首先是要初始化藍牙:openBluetoothAdapter()

          ```js

          if (wx.openBluetoothAdapter) {

          wx.openBluetoothAdapter({

          ? ? ? ? success: function(res) {

          ????????????/* 獲取本機的藍牙狀態(tài) */

          ? ? ? ? ? ? setTimeout(() = {

          ????????????????getBluetoothAdapterState()

          ????????????}, 1000)

          ????????},

          ? ? ? ? fail: function(err) {

          ????????????// 初始化失敗

          ????????}

          ????})

          ????} else {????

          ????}

          ```

          #2.檢測本機藍牙是否可用:

          #? 要在上述的初始化藍牙成功之后回調(diào)里調(diào)用

          ```js

          getBluetoothAdapterState() {

          ? ? var that= this;

          ? ? that.toastTitle= '檢查藍牙狀態(tài)'

          wx.getBluetoothAdapterState({

          ? ? ? ? success: function(res) {

          startBluetoothDevicesDiscovery()

          },

          ? ? ? ? fail(res) {

          ? ? ? ? ? ? console.log(res)

          }

          })

          }

          ```

          #3. 開始搜索藍牙設備:

          ```js

          startBluetoothDevicesDiscovery() {

          ? ? var that= this;

          ? ? setTimeout(() = {

          wx.startBluetoothDevicesDiscovery({

          ? ? ? ? ? ? success: function(res) {

          /* 獲取藍牙設備列表 */

          ? ? ? ? ? ? ? ? that.getBluetoothDevices()

          },

          ? ? ? ? ? ? fail(res) {

          }

          })

          }, 1000)

          }

          ```

          #4. 獲取搜索到的藍牙設備列表

          # /* that.deviceName 是獲取到的藍牙設備的名稱, 因為藍牙設備在安卓和蘋果手機上搜到的藍牙地址顯示是不一樣的,所以根據(jù)設備名稱匹配藍牙*/

          ```js

          getBluetoothDevices() {

          ? ? var that= this;

          ? ? setTimeout(() = {

          wx.getBluetoothDevices({

          ? ? ? ? ? ? services: [],

          ? ? ? ? ? ? allowDuplicatesKey: false,

          ? ? ? ? ? ? interval: 0,

          ? ? ? ? ? ? success: function(res) {

          ? ? ? ? ? ? ? ? if (res.devices.length 0) {

          ? ? ? ? ? ? ? ? ? ? if (JSON.stringify(res.devices).indexOf(that.deviceName) !== -1) {

          ? ? ? ? ? ? ? ? ? ? ? ? for (let i = 0; i res.devices.length; i++) {

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (that.deviceName === res.devices[i].name) {

          /* 根據(jù)指定的藍牙設備名稱匹配到deviceId */

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? that.deviceId = that.devices[i].deviceId;

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? setTimeout(() = {

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? that.connectTO();

          }, 2000);

          };

          };

          } else {

          }

          } else {

          }

          },

          ? ? ? ? ? ? fail(res) {

          ? ? ? ? ? ? ? ? console.log(res, '獲取藍牙設備列表失敗=====')

          }

          })

          }, 2000)

          },

          ```

          #5.連接藍牙

          # 匹配到的藍牙設備ID 發(fā)送連接藍牙的請求, 連接成功之后 應該斷開藍牙搜索的api,然后去獲取所連接藍牙設備的service服務

          ```js

          connectTO() {

          wx.createBLEConnection({

          ? ? ? ? deviceId: deviceId,

          ? ? ? ? success: function(res) {

          ? ? ? ? ? ? that.connectedDeviceId = deviceId;

          /* 4.獲取連接設備的service服務 */

          that.getBLEDeviceServices();

          wx.stopBluetoothDevicesDiscovery({

          ? ? ? ? ? ? ? ? success: function(res) {

          ? ? ? ? ? ? ? ? ? ? console.log(res, '停止搜索')

          },

          ? ? ? ? ? ? ? ? fail(res) {

          }

          })

          },

          ? ? ? ? fail: function(res) {

          }

          })

          }

          ```

          #6. 獲取藍牙設備的service服務,獲取的serviceId有多個要試著連接最終確定哪個是穩(wěn)定版本的service 獲取服務完后獲取設備特征值

          ```js

          getBLEDeviceServices() {

          ? ? setTimeout(() = {

          wx.getBLEDeviceServices({

          ? ? ? ? ? ? deviceId: that.connectedDeviceId,

          ? ? ? ? ? ? success: function(res) {

          ? ? ? ? ? ? ? ? that.services= res.services

          /* 獲取連接設備的所有特征值 */

          that.getBLEDeviceCharacteristics()

          },

          ? ? ? ? ? ? fail: (res) = {

          }

          })

          }, 2000)

          },

          ```

          #7.獲取藍牙設備特征值

          # 獲取到的特征值有多個,最后要用的事能讀,能寫,能監(jiān)聽的那個值的uuid作為特征值id,

          ```js

          getBLEDeviceCharacteristics() {

          ? ? ? ? ? ? setTimeout(() = {

          wx.getBLEDeviceCharacteristics({

          ? ? ? ? ? ? ? ? ? ? deviceId: connectedDeviceId,

          ? ? ? ? ? ? ? ? ? ? serviceId: services[2].uuid,

          ? ? ? ? ? ? ? ? ? ? success: function(res) {

          ? ? ? ? ? ? ? ? ? ? ? ? for (var i = 0; i res.characteristics.length; i++) {

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? if ((res.characteristics[i].properties.notify || res.characteristics[i].properties.indicate)

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (res.characteristics[i].properties.read res.characteristics[i].properties.write)) {

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(res.characteristics[i].uuid, '藍牙特征值 ==========')

          /* 獲取藍牙特征值 */

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? that.notifyCharacteristicsId = res.characteristics[i].uuid

          // 啟用低功耗藍牙設備特征值變化時的 notify 功能

          that.notifyBLECharacteristicValueChange()

          }

          }

          },

          ? ? ? ? ? ? ? ? ? ? fail: function(res) {

          }

          })

          }, 1000)

          },

          ```

          #8.啟動notify 藍牙監(jiān)聽功能 然后使用 wx.onBLECharacteristicValueChange用來監(jiān)聽藍牙設備傳遞數(shù)據(jù)

          #接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)必須是二級制數(shù)據(jù), 頁面展示的時候需要進行轉換

          ```js

          notifyBLECharacteristicValueChange() { // 啟用低功耗藍牙設備特征值變化時的 notify 功能

          ? ? ? ? ? ? var that= this;

          ? ? ? ? ? ? console.log('6.啟用低功耗藍牙設備特征值變化時的 notify 功能')

          wx.notifyBLECharacteristicValueChange({

          ? ? ? ? ? ? ? ? state: true,

          ? ? ? ? ? ? ? ? deviceId: that.connectedDeviceId,

          ? ? ? ? ? ? ? ? serviceId: that.notifyServicweId,

          ? ? ? ? ? ? ? ? characteristicId: that.notifyCharacteristicsId,

          ? ? ? ? ? ? ? ? complete(res) {

          /*用來監(jiān)聽手機藍牙設備的數(shù)據(jù)變化*/

          wx.onBLECharacteristicValueChange(function(res) {

          /**/

          ? ? ? ? ? ? ? ? ? ? ? ? that.balanceData += that.buf2string(res.value)

          ? ? ? ? ? ? ? ? ? ? ? ? that.hexstr += that.receiveData(res.value)

          })

          },

          ? ? ? ? ? ? ? ? fail(res) {

          ? ? ? ? ? ? ? ? ? ? console.log(res, '啟用低功耗藍牙設備監(jiān)聽失敗')

          ? ? ? ? ? ? ? ? ? ? that.measuringTip(res)

          }

          })

          },

          /*轉換成需要的格式*/

          buf2string(buffer) {

          ? ? ? ? ? ? ? ? ? ? var arr = Array.prototype.map.call(new Uint8Array(buffer), x = x)

          ? ? ? ? ? ? ? ? ? ? return arr.map((char, i) = {

          ? ? ? ? ? ? ? ? ? ? ? ? return String.fromCharCode(char);

          ? ? ? ? ? ? ? ? ? ? }).join('');

          },

          receiveData(buf) {

          return this.hexCharCodeToStr(this.ab2hex(buf))

          },

          /*轉成二進制*/

          ab2hex (buffer) {

          ? ? ? ? ? ? ? var hexArr = Array.prototype.map.call(

          ? ? ? ? ? ? ? ? ? new Uint8Array(buffer), function (bit) {

          ? ? ? ? ? ? ? ? ? ? ? return ('00' + bit.toString(16)).slice(-2)

          }

          )

          ? ? ? ? ? ? ? return hexArr.join('')

          },

          /*轉成可展會的文字*/

          hexCharCodeToStr(hexCharCodeStr) {

          ? ? ? ? ? ? ? var trimedStr = hexCharCodeStr.trim();

          ? ? ? ? ? ? ? var rawStr = trimedStr.substr(0, 2).toLowerCase() === '0x' ? trimedStr.substr(2) : trimedStr;

          ? ? ? ? ? ? ? var len = rawStr.length;

          ? ? ? ? ? ? ? var curCharCode;

          ? ? ? ? ? ? ? var resultStr= [];

          ? ? ? ? ? ? ? for (var i = 0; i len; i = i+ 2) {

          ? ? ? ? ? ? ? ? ? curCharCode = parseInt(rawStr.substr(i, 2), 16);

          ? ? ? ? ? ? ? ? ? resultStr.push(String.fromCharCode(curCharCode));

          }

          ? ? ? ? ? ? ? return resultStr.join('');

          },

          ```

          # 向藍牙設備發(fā)送數(shù)據(jù)

          ```js

          sendData(str) {

          ? ? let that= this;

          ? ? let dataBuffer = new ArrayBuffer(str.length)

          ? ? let dataView = new DataView(dataBuffer)

          ? ? for (var i = 0; i str.length; i++) {

          ? ? ? ? dataView.setUint8(i, str.charAt(i).charCodeAt())

          }

          ? ? let dataHex = that.ab2hex(dataBuffer);

          ? ? this.writeDatas = that.hexCharCodeToStr(dataHex);

          wx.writeBLECharacteristicValue({

          ? ? ? ? deviceId: that.connectedDeviceId,

          ? ? ? ? serviceId: that.notifyServicweId,

          ? ? ? ? characteristicId: that.notifyCharacteristicsId,

          ? ? ? ? value: dataBuffer,

          ? ? ? ? success: function (res) {

          ? ? ? ? ? ? console.log('發(fā)送的數(shù)據(jù):' + that.writeDatas)

          ? ? ? ? ? ? console.log('message發(fā)送成功')

          },

          ? ? ? ? fail: function (res) {

          },

          ? ? ? ? complete: function (res) {

          }

          })

          },

          ```

          # 當不需要連接藍牙了后就要關閉藍牙,并關閉藍牙模塊

          ```js

          // 斷開設備連接

          closeConnect() {

          if (that.connectedDeviceId) {

          wx.closeBLEConnection({

          ? ? ? ? ? ? deviceId: that.connectedDeviceId,

          ? ? ? ? ? ? success: function(res) {

          that.closeBluetoothAdapter()

          },

          ? ? ? ? ? ? fail(res) {

          }

          })

          } else {

          that.closeBluetoothAdapter()

          }

          },

          // 關閉藍牙模塊

          closeBluetoothAdapter() {

          wx.closeBluetoothAdapter({

          ? ? ? ? success: function(res) {

          },

          ? ? ? ? fail: function(err) {

          }

          })

          },

          ```

          #在向藍牙設備傳遞數(shù)據(jù)和接收數(shù)據(jù)的過程中,并未使用到read的API 不知道有沒有潛在的問題,目前線上運行為發(fā)現(xiàn)任何的問題

          #今天的藍牙使用心得到此結束,謝謝

          關于安卓小程序開發(fā)教程和安卓小程序開發(fā)入門的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

          掃碼二維碼