Android App“加固”
2019獨角獸企業重金招聘Python工程師標準>>>
實現應用程序不會隨著新版本的Android平臺裝載到用戶設備上而造成掛機是很重要的。下面的列表列舉了五種我們觀察到的比較糟糕的實現方式。你可以把這些看作是Android開發的“反模式”(即避免技巧)。
如果你的應用程序使用了下面描述的技巧,趕緊修補你的App吧。
避免技巧,#1:使用內部API
即便我們總是建議不要這么做,但還是有一些開發者選擇使用那些不支持或者內部的API。例如,許多開發者使用內部的亮度控制和藍牙切換API,這些API出現在1.0和1.1版本上。一個Bug——在Android 1.5上進行了修正——允許App在不需要請求權限的情況下使用這些API。結果,使用了這些API的App在1.5上掛掉了。如果你在App中使用了這些內部API,你需要做的是:停止這一做法,更新你的程序。
避免技巧,#2:直接操作Settings
嚴格來講,這一條不算,因為我們可以通過Android本身進行操作。但之所以我們加上了這一條,是因為一些開發者做了一些調皮的事情:一些App悄無聲息地修改了系統設定,而沒有通知用戶。例如,一些App沒有詢問用戶就直接打開了GPS,而另外一些則可能直接打開了數據傳輸。 因此,應用程序不能直接操作某個特定的系統設定值,即便是它們之前能這么做。例如,App不能直接打開或關閉GPS。不是說使用會導致App崩潰,而是不應該使用這些API。代替的,App需要發出一個Intent來啟動相應的Settings配置畫面,這樣用戶可以手動地修改這些設定。詳細情況可以參考android.provider.Settings.Secure類,你可以在1.5_pre(和之后的)SDK文檔中找到。注意,只有那些移動到Settings.Secure類中設定受到影響。其它的,還會像Android 1.1那樣有著相同的功能。
避免技巧,#3:過分布局
由于View渲染部分的變化,在布局中,過于深(超過10層左右)或過于多(超過30個左右)的View樹層次可能會導致程序崩潰。過于復雜的布局總歸是有危險的,盡管你可以認為Android 1.5已經好于1.1。大多數開發者不需要對此擔心,但如果你的App有著非常復雜的布局,你還是應該對其“瘦身”。你可以使用一些高級的布局類,如FrameLayout和TableLayout,來簡化你的布局。
避免技巧,#4:不好的硬件假設
Android 1.5支持軟鍵盤,因此,不久就會有很多設備不再包含物理鍵盤。如果你的程序假設物理鍵盤存在(例如,如果你創建一個自定義的View,并接收鍵按下消息),你必須保證在只有軟鍵盤的設備上也工作正常。想了解更多關于這方面的信息,請繼續關注這個Blog,我們將會有更多關于處理軟鍵盤的詳細資料。
避免技巧,#5:無意識的旋轉
運行Android 1.5(及以上)的設備能夠根據用戶手持設備的方向自動地旋轉屏幕。一些1.5的設備默認這么做,而其它的需要用戶手動設置。應用程序自己的重定向在某種程度上會導致不可預期的行為(不論是使用加速度計還是其它一些東西)。這種情況通常發生在應用程序假設有物理鍵盤時才能旋轉;如果設備沒有物理鍵盤,這些App就不能進行重定向,而這明顯就是個編碼錯誤。開發者應該明確應用程序能在任何時間都能處理重定向。
同樣,App可以使用加速度計做到與系統相同的事情——直接重定向自己,這也會引發奇怪的結果。一些App使用加速度計來監測像晃動動作什么的,而又不將其方向鎖定為垂直或水平,經常會導致在方向上來回翻動。而這就會激怒用戶。(你可以在manifest文件中使用android:screenOrientation特性來鎖定App的方向為垂直或水平。)
高煥堂教你android程序員怎樣成為架構師:http://www.microoh.com/04/01/27/27/
移動開發交流群:164427941
轉載于:https://my.oschina.net/microoh/blog/153139
總結
以上是生活随笔為你收集整理的Android App“加固”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 左边腰疼是什么原因引起的?
- 下一篇: POJ2391(最大流Isap+Floy