今天有安卓系統的客戶反應在升級了新版的微信之後,變得無法執行了,實際查看之後,發現不同品牌裝置的表現並不一樣,HTC 的蝴蝶機(4.4)跟 ASUS(4.3)的都沒問題,果然大廠還是比較有保障的。
試著找出問題,發現錯誤是新版的微信 5.3.1 在載入 libwechatCrashForJni.so 這個庫文件時失敗報錯,這個部分的代碼跟 5.3 有不小的差距,引用了不同的加載方式所造成的錯誤,實際上這個庫文件跟5.3是一樣的,也存放在正確的位置上,但是 5.3.1 載入時就會出錯,
5.3 版就沒這問題。
由於不是每個裝置每個品牌都會出錯,所以無法完全歸罪於微信的開發人員(只能說有部分是),但可以確定的是製造商肯定有進步的空間,因為有人做到了。
為什麼同樣的代碼會出現不同的結果呢 ??
怎麼解這問題呢 ??
1. Build Linux Kernel
cd A31s-BSP/lichee
./build.sh -p sun6i_fiber_a31s
如果 kernel config 有出現問題,執行下面步驟:
cd linux-3.3
make ARCH=arm sun6ismp_fiber_a31s_defconfig
cd ..
2. Buils Android System
在進行 Android BSP 開發的時候,Clean Build 往往需要耗費許多時間才能完成,
每個 Android BSP 都有最低的系統要求,以 RAM 來說最少都需要 8GB。
這代表需要在 64 bits 的系統上進行開發,或許有人會問,4GB RAM 的 32 bits 作業系統就不行嗎?
這個問題可以藉由下面這張圖來說明:
就在今天下午,HTC的蝴蝶機發佈了最新的韌體更新,新增了Sense 5, BlinkFeed, Zoe等期待已久的功能;OTA更新的通知應該陸陸續續的發送的每一支舊蝴蝶中。