Ⅰ 安卓12軟體熱更新檢測失敗是什麼意思
安卓12軟體熱更新檢測失敗是不能自主更新的意思。Java在運行時載入對應的類是通過ClassLoader來實現的,ClassLoader是一個抽象,android中使用PathClassLoader類作為Android的默認的類載入器,PathClassLoader實現的就是簡單的從文件系統中載入類文件。
Ⅱ Android開發Tinker熱更新的問題
通過閱讀官方的技術文檔,始終沒有發現有對這個情況的相關配置項,所以只能從別處下手,最後發現,通過在 app mole 的 「build.gradle」 文件中,注釋掉依賴插件腳本,最終解決掉這個問題:
說兩句:
目前運行調試一切正常,不過要始終留意後續是否會出現問題;重要的一點是,當要打包新版本時,一定要解開這個注釋。
2、can』t the get signConfig for this build
問題:
執行 buildTinkerPatchRelease 打 Release 版本補丁包時報以下錯誤:
Error:Execution failed for task ':app:tinkerPatchRelease'.
> can't the get signConfig for this build
1
2
解決:
android {
...
// 簽名配置【buildTypes中調用了signingConfigs,則signingConfigs{}要置於buildTypes{}前面】
signingConfigs {
release {
try {
storeFile file("MyProject.jks")
storePassword "111111"
keyAlias "zhangzeqiao"
keyPassword "111111"
} catch (ex) {
throw new InvalidUserDataException(ex.toString())
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
debug {
...
signingConfig signingConfigs.release
}
}
...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
其中要特別注意,signingConfigs{} 方法體要置於 buildTypes{} 方法體前面,不然會報以下錯誤:
Ⅲ 安卓熱更新違規嗎
違規
其實無論是安卓還是iOS,規則上都是不允許「熱更新」的。只不過以前iOS並沒有特別嚴格的限制,安卓是由於開源且其服務在國內不能使用,所以形同虛設。禁止熱更新有利有弊。有利的是,禁止熱更新,更能夠保證用戶的安全性。不利的是,每次都需要下載一個完整的應用,耗費流量。
如果平台支持熱更新的話,客戶端在更新的時候不需要重打包,玩家不需要重新進入網站下載最新安裝包,而直接在大廳內部檢測更新文件唯一標識碼,自動下載更新替換文件。
Ⅳ 如何評價騰訊在Unity下的xLua熱更方案
我認為xlua的概念很好,很多人用lua就是為了熱更新,如果沒有熱更新的需求,大多數人是不喜歡lua,或者所謂的腳本開發的,xlua很好的解決了這部分人得需求。
但我有一點其他看法,我04年畢業在網易工作的時候,網易的游戲都是基於腳本的,不管是客戶端,還是伺服器端,那個時候不是lua,就是python,還有一種是類似c語法的腳本(我忘記名字了),這個是雲風主導的,當時選擇腳本作為邏輯開發語言的核心想法**不是為了熱更新**,而是解決
1)劃分引擎層和業務層,svn管理好許可權,讓新來的同學,接觸不到核心引擎的代碼許可權,他們只能在腳本層做業務,等你對業務足夠熟悉,對引擎足夠了解,對公司足夠忠誠後,才開放引擎層代碼,這么做早年是為了解決私服問題,很多同學拿著全部源代碼去架設私服,這多可怕,所以做業務的程序員只能拿到一個編譯後的app和一份腳本介面文檔,而編譯出來的app會檢查線上ip,報告非法伺服器地址等,協助打擊私服。
2)避免書寫不好的c、cpp代碼崩潰整個進程,腳本代碼出錯了,最多影響局部邏輯,還可以上報腳本錯誤,方便後續解決問題,現在unity里也一樣,如果c#代碼書寫不好,就直接閃退了,不如用lua做一個安全的調用層。
3)快速修改代碼,快速跑起來,早年cpp代碼編譯速度比較慢,修改一行代碼調試運行等半天,腳本代碼方便修改,方便跑起來,不用等,放到今天也一樣,同時iOS還有text size大小的限制,太多的stub function會撐大text size,而lua腳本再多的代碼也不會有這個問題,不用再為了text size取捨代碼怎麼寫,功能去留的問題。
4)反外掛,對,你沒看錯,反外掛,早年PE各種脫殼、反編譯工具,使得一個exe幾乎沒有秘密,外掛作者很容易做外掛,而用腳本後,幾乎所有邏輯都是中間代碼,這部分中間代碼可以通過修改opcode,加密,一邊run,一邊解密等技術,保證在進程空間內基本沒有完成代碼存在,對外掛作者是個很大挑戰,所以網易的游戲反外掛歷來做的都是最好的;
5)最後才是所謂的「熱更新」, 當年也不是現在這種熱更新,就是每次客戶端啟動的時候,有一個launcher去伺服器下載一個update,然後應用這個update而已。