内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

flutter導(dǎo)出庫,flutter操作數(shù)據(jù)庫

Flutter dynamic_widget框架支持json code導(dǎo)出功能

dynamic_widget 是一個可以用json來描述flutter widget的動態(tài)布局框架,json code和flutter widget code一一對應(yīng),如下圖:

創(chuàng)新互聯(lián)專注于右江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供右江營銷型網(wǎng)站建設(shè),右江網(wǎng)站制作、右江網(wǎng)頁設(shè)計(jì)、右江網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造右江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供右江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

dynamic_widget:

Flutter 之 文件操作(二十九)

Dart的 IO 庫包含了文件讀寫的相關(guān)類,它屬于 Dart 語法標(biāo)準(zhǔn)的一部分,所以通過 Dart IO 庫,無論是 Dart VM 下的腳本還是 Flutter,都是通過 Dart IO 庫來操作文件的,不過和 Dart VM 相比,F(xiàn)lutter 有一個重要差異是文件系統(tǒng)路徑不同,這是因?yàn)镈art VM 是運(yùn)行在 PC 或服務(wù)器操作系統(tǒng)下,而 Flutter 是運(yùn)行在移動操作系統(tǒng)中,他們的文件系統(tǒng)會有一些差異。

Android 和 iOS 的應(yīng)用存儲目錄不同, PathProvider 插件提供了一種平臺透明的方式來訪問設(shè)備文件系統(tǒng)上的常用位置。該類當(dāng)前支持訪問兩個文件系統(tǒng)位置:

File代表一個整體的文件,他有三個構(gòu)造函數(shù),分別是:

文件讀取本身有兩種形式,一種是文本,一種是二進(jìn)制。

2.2.1 讀取文本內(nèi)容

如果是文本文件,F(xiàn)ile提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,讀取文本內(nèi)容

readAsString 一次性讀取所有文本

readAsLines 一行行的讀取文本

結(jié)果返回的是一個List,list中表示文件每行的內(nèi)容

readAsStringSync、readAsLinesSync同步讀取文本

2.2.2 讀取二進(jìn)制內(nèi)容

如果文件是二進(jìn)制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:

dart中表示二進(jìn)制有一個專門的類型叫做Uint8List,他實(shí)際上表示的是一個int的List。

上面提到的讀取方式,都是一次性讀取整個文件,缺點(diǎn)就是如果文件太大的話,可能造成內(nèi)存空間的壓力。

所以File為我們提供了另外一種讀取文件的方法,流的形式來讀取文件.

示例

dart提供了open和openSync兩個方法來進(jìn)行隨機(jī)文件讀寫:

寫入和文件讀取一樣,可以一次性寫入或者獲得一個寫入句柄,然后再寫入。

一次性寫入的方法有四種,分別對應(yīng)字符串和二進(jìn)制

句柄形式可以調(diào)用openWrite方法,返回一個IOSink對象,然后通過這個對象進(jìn)行寫入:

默認(rèn)情況下寫入是會覆蓋整個文件的,但是可以通過下面的方式來更改寫入模式:

雖然dart中所有的異常都是運(yùn)行時異常,但是和java一樣,要想手動處理文件讀寫中的異常,則可以使用try,catch:

我們還是以計(jì)數(shù)器為例,實(shí)現(xiàn)在應(yīng)用退出重啟后可以恢復(fù)點(diǎn)擊次數(shù)。 這里,我們使用文件來保存數(shù)據(jù):

1.引入PathProvider插件;在pubspec.yaml文件中添加如下聲明:

執(zhí)行 flutter pub get

2.實(shí)現(xiàn)如下

參考:

Flutter Android端集成排坑 - armeabi 適配 & FlutterBoost

Flutter可以算是當(dāng)下最火熱的新技術(shù)之一,我現(xiàn)在所在團(tuán)隊(duì)也準(zhǔn)備將Flutter技術(shù)應(yīng)用到線上工程中。

關(guān)于混合工程,官方文檔其實(shí)寫的已經(jīng)比較清楚了,按著文檔走一般問題不大,

但是有一點(diǎn)值得注意的是,F(xiàn)lutter工程引入的庫的gradle的 buildTypes 要與原工程保持一致,如果不一致需要手工添加。

進(jìn)入正題,現(xiàn)在Flutter官方默認(rèn)只提供armeabi-v7a、arm64-v8a、x86和x86-64,其中x86和x86-64是為模擬器準(zhǔn)備的。目前我們使用的SDK大部分只使用了armeabi架構(gòu),直接使用我們會遇見找不到 libflutter.so,libapp.so 的情況,所以我們需要對FlutterSDK做一定的改造。

首先我們要了解下Flutter編譯產(chǎn)物,因?yàn)椴煌姹井a(chǎn)物是不同的,這里我們只針對Flutter 1.9.1-hotfixes來說。除了資源文件之外,F(xiàn)lutter打包會生成兩個非常重要的so庫,他們分別是 libflutter.so,libapp.so 。其中 libflutter.so 是Flutter的SDK產(chǎn)物而 libapp.so 正是我們編寫的dart文件的產(chǎn)物。默認(rèn)情況下,這兩個文件都會出現(xiàn)在armeabi-v7a中,因此我們要作出對應(yīng)的改造。

libflutter.so 位于FlutterSDK中,這里順帶提一句,除了這對不同CPU架構(gòu),它還分為Debug版和Release版,它們的區(qū)別在于Debug是為JIT編譯方式打造的,體積較大而Release是為AOT編譯方式打造的,體積很小。對 libflutter.so 的改造,只要將其移動文件路徑即可,運(yùn)行以下腳本即可,此腳本來自美團(tuán)分享的Flutter文章。

移動完了 libflutter.so 之后我們打包發(fā)現(xiàn), libapp.so 仍然會出現(xiàn)在armeabi-v7a中,所以第二部我們就是移動 libapp.so 。這個需要更改 flutter.gradle ,我們在 flutter.gradle 的45行可以看到如下定義,它定義了我們的環(huán)境。

在524行我們可以看到,abiValue的取值就是根據(jù)上述定義值。

所以結(jié)論很簡單,只要將

private static final String ARCH_ARM32 = "armeabi-v7a";

改為

private static final String ARCH_ARM32 = "armeabi";

就可以完成對與 libflutter.so 的移動。

前期工作我們都做好了,打成aar就非常簡單了

直接使用 flutter build aar --target-platform android-arm

打出來后可以解壓檢查下 libflutter.so,libapp.so 是否都在armeabi文件夾下即可。

說完了armeabi適配問題,這里下說下有關(guān)于有關(guān)于FlutterBoost的接入。這個東西接入有兩點(diǎn)要注意。

在主app內(nèi)加上即可,常規(guī)操作,強(qiáng)制統(tǒng)一support包的版本號

注釋flutter.gradle第655行。因?yàn)榫幾g過程中,會去初始化插件項(xiàng)目的buildType下面的debug配置,而插件項(xiàng)目下并未配置debug,導(dǎo)致報錯。

如果發(fā)現(xiàn)文章中有錯誤或者有更好的解決方案歡迎指正留言,當(dāng)然如果本篇文章幫助你解決了問題,也不要吝嗇你的感謝。謝謝各位。

flutter插件發(fā)布及問題解決

1,執(zhí)行 flutter pub publish--dry-run 檢查是否具備發(fā)布條件

遇到的問題1:

It‘s strongly recommended to include a “homepage“ or “repository“ field

解決方案:在 pubspec. yaml ?中配置 主頁 homepage 地址 :

homepage:

可參考:

2,執(zhí)行 flutter pub publish--server= 發(fā)布

如果執(zhí)行flutter pub publish發(fā)布的話會遇到以下錯誤,國內(nèi)還是用?flutter pub publish--server= 來發(fā)布

package repository requested authentication! You can provide credential using:pub token add

問題1:It looks like accounts.google.com is having some trouble. Pub will wait for a while before trying to connect again. OS Error: Operation timed out, errno = 60, address = accounts.google.com, port = 53481 pub finished with exit code 69

原因:

1、國內(nèi)墻;

2、flutter環(huán)境配置添加了國內(nèi)鏡像

解決方式:

1、翻墻;

2、屏蔽環(huán)境變量里關(guān)于flutter的國內(nèi)鏡像;

屏蔽方式如下:

# export PUB_HOSTED_URL=

# export FLUTTER_STORAGE_BASE_URL=

3、設(shè)置終端代理命令(這個是我解決的方式),這個非常重要,不然就會報上面超時錯誤了

如果出現(xiàn):Flutter pub finished with exit code 1

解決方式:flutter packages pub publish --server=

此問題原文鏈接:(畢竟要尊重版權(quán))

問題2:LICENSE這個文件中不能有TODO,也不能為空,可找個flutter庫看看別人是怎么寫的

本文標(biāo)題:flutter導(dǎo)出庫,flutter操作數(shù)據(jù)庫
轉(zhuǎn)載注明:http://www.rwnh.cn/article6/dscdoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制開發(fā)、響應(yīng)式網(wǎng)站、電子商務(wù)、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
白朗县| 曲周县| 牙克石市| 攀枝花市| 贵阳市| 历史| 田东县| 甘德县| 临猗县| 沾化县| 大庆市| 沿河| 沅陵县| 汨罗市| 吉木乃县| 吉木乃县| 新和县| 长丰县| 鄂托克前旗| 陇南市| 东宁县| 湘阴县| 盐池县| 如皋市| 扎兰屯市| 双桥区| 察雅县| 竹溪县| 顺昌县| 祁门县| 昭平县| 历史| 棋牌| 阿巴嘎旗| 庄浪县| 英超| 梧州市| 北宁市| 乌恰县| 屏东县| 延川县|