主頁 > 移動端開發 > 【聯邦學習+區塊鏈】《聯邦學習vs區塊鏈:誰是“可信媒介”技術領域最強王者?》疑問解答

【聯邦學習+區塊鏈】《聯邦學習vs區塊鏈:誰是“可信媒介”技術領域最強王者?》疑問解答

2020-09-18 10:18:23 移動端開發

聯邦學習【1】VS 區塊鏈

【問1】聯邦學習,何為“聯邦”?

作為一種分布式機器學習技術,聯邦學習可以實作各個企業的自有資料不出本地,而是通過加密機制下的引數交換方式共建模型,即在不違反資料隱私法規的情況下,建立一個虛擬的共有模型,由于資料本身不移動,因此也不會涉及隱私泄露和資料合規問題,這樣,建好的模型將在各自的區域僅為本地的目標服務,在這樣一個聯邦機制下,參與各方可以在不披露底層資料和底層資料的加密(混淆)形態下共建模型,各個參與者的身份和地位相同,這就是為什么這個體系叫做聯邦學習,

舉例來說,假設有兩個不同的企業 A 和 B,它們擁有不同的資料,比如企業 A 有用戶特征資料,企業 B 有產品特征資料和標注資料,這兩個企業按照 GDPR 準則是不能粗暴地把雙方資料加以合并的,因為他們各自的用戶并沒有機會同意這樣做,假設雙方各自建立一個任務模型,每個任務可以是分類或預測,這些任務也已經在獲得資料時取得了各自用戶的認可,那么,現在的問題是如何在 A 和 B 各端建立高質量的模型,但是,又由于資料不完整(例如企業 A 缺少標簽資料,企業 B 缺少特征資料),或者資料不充分(資料量不足以建立好的模型),各端有可能無法建立模型或效果不理想,聯邦學習的目的是解決這個問題:它希望做到各個企業的自有資料不出本地,聯邦系統可以通過加密機制下的引數交換方式,在不違反資料隱私保護法規的情況下,建立一個虛擬的共有模型,這個虛擬模型就好像大家把資料聚合在一起建立的最優模型一樣,但是在建立虛擬模型的時候,資料本身不移動,也不會泄露用戶隱私或影響資料規范,這樣,建好的模型在各自的區域僅為本地的目標服務,在這樣一個聯邦機制下,各個參與者的身份和地位相同,而聯邦系統幫助大家建立了「共同富裕」的策略,這就是為什么這個體系叫做「聯邦學習」,

PS:聯邦學習和分布式機器學習有異同點?

聯邦學習是分布式機器學習的一種,最大的區別應該就是「中心服務器」對其他「計算節點」的控制權不同,具體解釋篇幅較長,附在文章最后(附文 1),

在互聯網新浪潮中,聯邦學習和區塊鏈是最受關注的兩項熱門技術,聯邦學習【注】是一種在大資料服務中保護隱私的分布式機器學習技術區塊鏈是一種在去中心化網路中實作價值轉移的分布式賬本技術,那么問題來了,誰是可信媒介技術領域最強王者?

【注】另有文章說“聯邦學習的作用主要是用來解決資料孤島”,【出處】什么是聯邦學習

繼續延伸:什么是“資料孤島”?

“企業發展到一定階段,出現多個事業部,每個事業部都有各自資料,事業部之間的資料往往都各自存盤,各自定義,每個事業部的資料就像一個個孤島一樣無法(或者極其困難)和企業內部的其他資料進行連接互動,”我們把這樣的情況稱為資料孤島,簡單說就是資料間缺乏關聯性,資料庫彼此無法兼容,”專業人士把資料孤島分為物理性和邏輯性兩種,

在聯邦學習這里,更側重與是各“資料島”之間不想連接互動,或者說不敢直接互動

王牌技術 · 起源

聯邦學習誕生于2016年的谷歌輸入法優化專案,在互聯網產業中存在三種服務形態:橫向聯邦學習、縱向聯邦學習和聯邦遷移學習【2】,2020年4月,資料作為新型生產要素,與土地、勞動力、資本、技術并列為五個生產要素,這意味著個人資料隱私作為不可侵犯的個人權利受法律保護的同時,資料的開放共享又是數字經濟發展的命脈之所在,是中國在下一輪國家間新技術競爭中取勝的關鍵,因此,聯邦學習技術成為產業界解決資料隱私資料共享之間矛盾【3】的常規方法,

【問2】聯邦學習的三種服務形態的分類依據是什么?有什么異同點?

縱軸表示用戶維度,橫軸表示用戶特征維度,對用戶和用戶特征,偏向重合部分數量較多的一方進行切分;都不多時,不切分,進行遷移學習,

橫向聯邦學習在兩個資料集的用戶特征重疊較多而用戶重疊較少的情況下,我們把資料集按照橫向(即用戶維度)切分,并取出雙方用戶特征相同而用戶不完全相同的那部分資料進行訓練,比如業務相同但是分布在不同地區的兩家企業,它們的用戶群體分別來自各自所在的地區,相互的交集很小,但是,它們的業務很相似,因此,記錄的用戶特征是相同的,

縱向聯邦學習在兩個資料集的用戶重疊較多而用戶特征重疊較少的情況下,我們把資料集按照縱向(即特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分資料進行訓練,比如有兩個不同機構,一家是某地的銀行,另一家是同一個地方的電商,它們的用戶群體很有可能包含該地的大部分居民,因此用戶的交集較大,但是,由于銀行記錄的都是用戶的收支行為與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小,目前,邏輯回歸模型、樹型結構模型和神經網路模型等眾多機器學習模型已經逐漸被證實能夠建立在此聯邦體系上,

橫向聯邦特征維度都一樣,通過擴充樣本的方式提升模型質量;縱向聯邦樣本相通,通過擴充特征的方式來實作資料的資訊互通,提升模型質量,

遷移學習在兩個資料集的用戶與用戶特征重疊都較少的情況下,我們不對資料進行切分,而可以利用遷移學習來克服資料或標簽不足的情況,這種方法叫做聯邦遷移學習,比如有兩個不同機構,一家是位于中國的銀行,另一家是位于美國的電商,由于受到地域限制,這兩家機構的用戶群體交集很小,同時,由于機構型別的不同,二者的資料特征也只有小部分重合,在這種情況下,要想進行有效的聯邦學習,就必須引入遷移學習,來解決單邊資料規模小和標簽樣本少的問題,從而提升模型的效果,

【問3】是怎樣解決矛盾的?

聯邦學習可實作各個企業的自有資料不出本地,而是通過加密機制下的引數交換方式共建模型,即在不違反資料隱私法規的情況下,建立一個虛擬的共有模型,(至于具體是怎么實作的這個功能的,這個問題留待研究,)

而更早的區塊鏈技術,則誕生于2009年的位元幣專案,根據賬本來源分為三種服務形態:數字貨幣、智能合約、應用平臺,在2019年之前,區塊鏈技術更多地以數字貨幣的形式野蠻生長,直至2019年10月,中共中央政治局就區塊鏈技術進行集體學習,肯定了區塊鏈技術的集成應用在新的技術革新和產業變革中起著重要作用——推動區塊鏈和物體經濟深度融合,有望解決中小企業貸款融資難、銀行風控難、部門監管難等問題;利用區塊鏈技術探索數字經濟模式創新,有望為打造便捷高效、公平競爭、穩定透明的營商環境提供動力等,

可信媒介 · 原因

能夠獲得如此熱度和重要性,聯邦學習和區塊鏈有個重要的共同特征:可信,俗話說“人心隔肚皮”,陌生人之間一般難以建立信任,這是因為在資源有限的社會競爭中,獲得更多利益是人的本性,人們擔心被欺詐而損失利益,信任對市場經濟中的作用不言而喻,

在傳統市場中,交易由權威機構監督執行,例如,政府制定《消費者權益保護法》及《產品質量法》,并對違法行為進行懲罰,也就是說,權威機構提供“可信媒介”作用,為市場交易保駕護航,尤其是對于常見商品,質量、價格等細節均有十分詳盡、標準化的管理方案,

在新興的互聯網市場中,智能終端設備依據摩爾定律飛速發展、光纖網路和5G無線網路逐步普及,產品創新層出不窮,相比之下,權威機構需要經過較長時間調查和研究方能制定相應法規,這使得很多互聯網產品短時間內得不到權威機構的“可信媒介”作用,進而使得用戶不敢放心大膽的使用新產品,例如,在互聯網電子支付出現7年之后,權威機構才為部分互聯網企業發放支付牌照,這才有了后來無處不在、十分便捷的手機支付形式,現如今,點對點轉賬(提高跨境交易的便捷性)、互聯網大資料合作(提高用戶服務水平)等新產品,尚缺乏成熟的法律法規來進行必要的管理與規范,亟需可用的“可信媒介”,

聯邦學習和區塊鏈正是在這樣的背景下誕生的技術派“可信媒介”,聯邦學習的可信在于,在資料合作程序中使用的是不可逆【4】的變換資料,即使沒有權威機構監督,隱私資料也不會泄露,

區塊鏈的可信在于,在記賬程序中使用了群體共識【5】數字簽名【6】技術,即使沒有權威機構監督,所記錄的交易也是不可篡改且不可抵賴的,因此,這樣的技術“可信媒介”將為國民經濟持續健康發展提供新的生產力,

【問4】怎樣保證“不可逆” / 不可篡改?

Hash()函式的單向性: Hash(x) =y , 通過y很難找到x,

區塊鏈提供了一種方案, 讓一個網路中,所有的結點都有能力去用計算能力投票, 從而保證了得到承認的結果是大多數人公認的結果, 不會因為少數結點作惡,而修改結果,

【問5】區塊鏈是怎樣讓“群體”都知道的?

簡單理解是,大部部分公共區塊鏈利用relay網路廣播資訊,每個節點保存一組鄰居節點地址,當收到一條資訊,該節點會廣播給鄰居,鄰居又廣播給鄰居的鄰居,最后這條訊息以大概率被廣播到全網,

具體演算法:--------

【問6】區塊鏈的“數字簽名”是什么樣的?

數字簽名,就是只有資訊的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對資訊的發送者發送資訊真實性的一個有效證明,

數字簽名涉及到區塊鏈的認證機制,它有兩個作用:

  • 證明訊息確實是由資訊發送方簽名并發送出來的
  • 確定訊息的完整性

 通過數字簽名我們主要實作了:

  接收方能通過發送方的公鑰認證發送方的身份;通過私鑰方式簽名,別人偽造不了資訊的簽名;發送方也通過私鑰簽名抵賴不了對資訊的簽名;通過數字摘要技術保證了資料的完整性,哈希函式也保證了資料不可有任何篡改,

發送報文時

  發送方將報文利用數字摘要技術生成報文摘要,用非對稱密鑰加密技術中私鑰對報文摘要進行加密,將原文和加密后摘要一同發送給接收方,

接收報文時

  接收方利用資料摘要技術對發送方發送的原文生成報文摘要,用公鑰對發送方發送的資料進行解密,得到發送生成的報文摘要,解密的報文摘要和接收方自己生成的報文摘要進行對比,相同說明資訊沒有被篡改,

數字簽名的基本演算法:

1.對稱加密演算法; 2.非對稱加密演算法; 詳略,

聯邦學習/區塊鏈· 應用場景

在應用上,兩者均用于互聯網場景,不同之處在于,聯邦學習用于個性化的用戶服務,區塊鏈則用于點對點的交易記賬和合約,

京東數科在聯邦學習領域已經成功實作了多個專案的落地應用,例如,在疫情期間,為確保疫情過后農業生產生活的快速恢復和正常開展,京東城市基于聯邦學習、同態加密、資料隱私保護的數字網關技術,在保證資料不出庫的基礎上,聯合四川省德陽市廣漢市農業農村區域署了“西南禽苗交易資訊平臺”,幫助中小企業動態、實時匹配禽苗供需資訊,上線不到兩周,即完成禽苗交易1250450羽,

京東數科也將聯邦學習用于人臉識別,在配合式場景下(如自拍照對比自拍照),當誤檢率為十萬分之一的情況下,通過率高達99.96%,當誤檢率為萬分之一的情況下,通過率則高達99.99%,

而在區塊鏈上,京東數科更是將其運用在了品質溯源、數字存證、信用網路、金融科技、價值創新等多個領域,

在品質溯源上,在行業內首創AI+區塊鏈溯源應用,打造了普洱茶區塊鏈防偽追溯平臺,有效解決了普洱茶流通程序的痛點,截至2020年5月,京東數科的區塊鏈防偽追溯平臺智臻鏈,已有超13億追溯資料落鏈,900余家合作品牌商,7萬多件入駐商品,逾700萬次售后用戶訪問查詢,覆寫生鮮農業、母嬰、酒類、美妝、二手商品、奢侈品、跨境商品、醫藥、商超便利店等豐富業務場景,

京東數科首創“茶臉識別”技術

在數字存證上,京東數科依托其自主研發的區塊鏈數字存證平臺,實作了可信存證、自動化取證、一鍵舉證、侵權預警等功能,目前已經應用于電子合同、電子發票、電子證照、電子票據、互聯網訴訟、著作權保護等場景,其中,區塊鏈電子合同平臺已服務超百萬次合同簽約,

京東區塊鏈數字存證平臺功能一覽

在信用網路上,針對消費租賃市場糾紛取證難問題,信用租賃平臺“京小租”使用區塊鏈技術,通過自動化流程獲取租賃業務中租賃協議、訂單資料、租賃流程等資料并完成“上鏈”操作,保證租賃服務的公開透明,這項技術同樣被京東數科運用于數字身份、企業通用賬號、信用租賃、物流征信等方面,為企業經營和個人生活提供便利,

在金融科技上,京東數科區塊鏈早在2017年就應用于資產證券化領域,比如,2019年6月推出的首個區塊鏈ABS標準化解決方案,能幫助資產方、計劃管理人、律師事務所、評級機構、會計師事務所、托管行等ABS業務參與機構優化業務流程,節約時間成本,提升ABS發行業務效率,

除此之外,京東數科還正式開源了京東區塊鏈底層引擎JD Chain,JD Chain面向企業通用業務場景而設計,滿足企業積木化按需定制,讓企業快速接入區塊鏈世界,幫助企業進行海量高效資料治理,

JD Chain關鍵技術特性

應用基礎:

兩項技術均需要有協作意愿和共識的計算節點,

不同之處在于,

聯邦學習要求節點之間的資料具有互補性,例如其中一個節點存盤消費習慣特征,另一個節點存盤性格、愛好等特征,各節點之間的共識聯邦演算法【7】,通過約定在聯邦之間的資訊互動協議,實作模型訓練及推理,

【問8】聯邦演算法的原理是什么?

聯邦學習學習心得(2)——縱、橫向聯邦學習的原理分析

區塊鏈需要各節點同步記錄所有交易資訊,例如賬戶A給賬戶B支付1個代幣,A的支付資訊及簽名將發送給網路上的所有節點,各節點產生一致的記錄,區塊鏈網路里能夠達成一致,最關鍵的技術是共識演算法【8】,共識演算法是解決一致性問題的關鍵,在分布式、去中心化的區塊鏈網路中協助節點保持資料一致,常用的共識演算法如作業量證明(POW)、拜占庭容錯(BFT)、股份授權證明(DPoS)等,

【問8】區塊鏈的“共識演算法”原理是什么?

知乎首份區塊鏈面試指南--之共識演算法

應用目標

兩項技術的目標都是在去中心化網路中增強節點之間的互信

不同之處在于,

聯邦學習旨在實作“資料可用不可見【9】的隱私保護技術,并通過融合使用各方資料提升用戶服務的質量,進而創造出新的價值,例如同態加密就是一種隱私保護技術,所產生的密文與明文完全不一樣,分布性質和排序性質都發生了巨大變化,這使得原始資料是“不可見”的,密文可按指定規則進行運算,進而實作梯度下降演算法和模型優化,實作了“可用”,

【問9】是怎樣實作“可用不可見”的?

“可用不可見”其核心有兩層含義:資料的可用性和資料的不可見性,即在充分保護資料和隱私安全的前提下,實作大資料價值的轉化和提煉,

實作“不可見”:全面脫敏和去標識化,

如何“可用”:(例)同盾科技——同盾科技基于聯邦學習提出了“知識聯邦”的理論框架體系,支持從資訊層、模型層、認知層和知識層四個層級進行聯邦,以實作資料可用不可見, 在“知識聯邦”框架中,資訊層通過安全多方計算在密文空間上直接進行計算或學習,進而提取或發現知識;模型層聯邦與傳統的聯邦學習相似,基于模型加密互動共創知識,并實作知識共享;認知層對同/異構資料進行認知學習之后進行集成或多模態融合,進而生成復雜的知識網路;知識層對分布的知識進一步學習提煉,實作基于知識的表達推理及智能決策,

區塊鏈旨在確保交易記錄不可篡改,利用共識演算法、分布式技術解決在去中心化網路中的雙重支付問題,最終實作數字世界的價值表示和價值轉移,例如在位元幣系統中,賬戶A給賬戶B支付1個位元幣,并將該資訊廣播給所有“礦工”節點,“礦工”為了獲得系統獎勵,都努力將該資訊打包到新區塊,并為了獲得更多獎勵爭當歷史區塊的見證者,這便使得該資訊在區塊鏈中不可篡改,

強強聯合 · 未來

聯邦學習和區塊鏈有共同的應用基礎,通過技術上的共識實作多方合作的可信網路,具有較好的互補性,從應用目標來看,聯邦學習旨在創造價值,而區塊鏈旨在表示和轉移價值,

因此有以下兩種基本結合形式

第一種結合是利用區塊鏈的記錄不可篡改特性,對聯邦學習合作方可能面臨的惡意攻擊進行追溯和懲罰,例如,在多個參與方進行聯邦學習的同時,部署區塊鏈用于記錄聯邦學習的資料指紋(包括建模樣本、推理樣本、互動資訊),而對應的原始資料存盤于參與方本地,當發現有樣本遭受惡意攻擊時,由各參與方或者第三方組成調查組,依據區塊鏈記錄的指紋對原始資料進行核驗,便可以找出具體是哪一方遭受了攻擊,進而采取相應的措施,

第二種結合是利用區塊鏈的價值表示和轉移功能,對聯邦學習服務所創造的價值進行記賬和利益分配例如,在多個參與方進行聯邦推理的同時,部署區塊鏈用于記錄用戶服務的介面呼叫日志指紋、各參與方的貢獻、該服務所產生的收益,并通過智能合約自動將收益分配給各參與方,這種方式與現有的按條計費不同,可以更精準地評估每次呼叫的質量,從而激勵參與方確保呼叫的準確性,并積極優化效果,

【注】資訊傳遞的主要方式是復制;資訊轉移的主要方式是記錄,

附文 1

最大的區別應該就是「中心服務器」對其他「計算節點」的控制權不同,但具體來說,它們有以下幾點不同之處:

🔺中心服務器對資料和計算節點的控制權不同,分布式學習的中心服務器對計算節點以及其中的資料具有較高的控制權,計算節點完全受中心服務器的控制,接收來自中心服務器的指令,例如,在 MapReduce 這種分布式計算模型中,中心服務器可以下發一個指令,讓計算節點互相交換資料,但是在聯邦學習中,計算節點對資料具有絕對的控制權,中心服務器無法直接或間接操作計算節點上的資料;計算節點可以隨時停止計算和通信,退出學習程序,

計算節點穩定性不同,分布式學習場景下的計算節點,通常都位于專用的機房中,用高速寬帶進行互聯,網路、運行環境都非常穩定,而參與聯邦學習的計算節點可能是手機、平板等移動設備,這些設備因為用戶的使用習慣,其所處的網路環境并不穩定,隨時都可能與中心服務器斷開連接,

通信代價不同,因為分布式學習中的計算節點與中心服務器通常處于同一地理位置,而且有專用的通信條件,所以通信代價往往較小,而聯邦學習中的計算節點可能分布在不同的地理位置,與中心服務器一般處于遠程連接的狀態,同時受不同設備網路帶寬的影響,其通信代價要更高,

🔺計算節點上資料分布型別不同,分布式學習中,不同計算節點上的資料的劃分通常是均勻、隨機打亂的,它們具有獨立同分布的特點,這樣的特性非常適合設計高效的訓練演算法,但在聯邦學習中,并不能簡單假設資料是獨立同分布的,由于計算節點中的資料資料是獨立產生的,他們往往表現出不同的分布特征(非獨立同分布),

計算節點上資料量級不同,分布式學習為了提高訓練效率,通常都會把訓練資料均勻分布在每個計算節點上,實作負載均衡,然而在聯邦學習的條件下,每個計算節點擁有的資料量與設備自身有關,很難保證不同計算節點擁有相近的資料量,

參考文章/文獻:

[1] 聯邦學習vs區塊鏈:誰是“可信媒介”技術領域最強王者?

[2] 聯邦學習—破解AI演算法訓練資料孤島和資料隱私難題

[3] 2020.9.11聯邦學習基礎概念篇

[4] https://www.zhihu.com/question/383035713/answer/1150461823 知乎@MetaTian

[5] 什么是聯邦學習

[6] 一文讀懂“聯邦學習”和“區塊鏈”的異同

[7] 聯邦學習

[8] 一文了解區塊鏈中的數字簽名技術 知乎@財經小二

[9] 聯邦學習學習心得(2)——縱、橫向聯邦學習的原理分析

[10] 知乎首份區塊鏈面試指南--之共識演算法

[11] 同盾科技聯邦學習技術加持 讓資料“可用不可見”

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/72963.html

標籤:其他

上一篇:區塊鏈是什么----自學筆記

下一篇:基于區塊鏈技術的跨境貿易溯源研究(1)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more