在Android中,能夠四給不一樣層次上開啓硬件加速:android
一、Application網絡
<applicationandroid:hardwareAccelerated="true">app
二、Activityide
<activityandroid:hardwareAccelerated="true">post
三、Window測試
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);spa
四、Viewdebug
view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);調試
在這四個層次中,應用和Activity是能夠選擇的,Window只能打開,View只能關閉。orm
在apk的AndroidManifest中,若是指定了minSDKVersion&targetSDKVersion=7,會使得應用沒法使用硬件加速進行繪圖。
注:有些朋友可能會遇到在開發過程當中用到虛線的狀況,實現有兩種方式:
方式一:
hundsun_include_dotted_line.xml
<?xml version="1.0"encoding="utf-8"?>
<Viewxmlns:android="http://schemas.android.com/apk/res/android"
style="@style/HundsunStyleWmHw"
android:background="@drawable/hundsun_shape_dotted_line" />
hundsun_shape_dotted_line.xml
<?xml version="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<!-- 顯示一條虛線,破折線的寬度爲dashWith,破折線之間的空隙的寬度爲dashGap,當dashGap=0dp時,爲實線(使用時須要把這個Activity的硬件加速關了) -->
<stroke
android:dashGap="@dimen/hundsun_dimen_wee_spacing"
android:dashWidth="@dimen/hundsun_dimen_small_spacing"
android:width="@dimen/hundsun_dimen_normal_divide"
android:color="@color/hundsun_app_color_divide" />
<!-- 虛線高度 -->
<size android:height="2dp" />
</shape>
這種方式須要在使用該虛線的Activity中設置<activity android:hardwareAccelerated="false">,缺點是這個Activity會變慢,若是有網絡請求時,大機率出現收到數據後不會回調問題(斷點時,每次都會回調,這是不少人遇到的奇怪問題)。
方式二(建議使用這種方式):
hundsun_include_dash_line.xml
<?xml version="1.0"encoding="utf-8"?>
<Viewxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/hundsun_dimen_normal_divide"
android:background="@drawable/hundsun_shape_dash" />
hundsun_shape_dash.xml
<?xml version="1.0"encoding="utf-8"?>
<bitmapxmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/hundsun_dashed_line"
android:tileMode="repeat" />
hundsun_dashed_line.png是一張圖片,只要很小很小就行,自動平鋪的。
另外對APP進行在線全方位遠程調試我都會用Testbird——雲手機,功能很是強大,又很方便快捷,還能夠作兼容性測試、壓力測試等等。