<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 電腦硬件知識 > 硬件知識 > Android開發中硬件加速支持的使用方法

        Android開發中硬件加速支持的使用方法

        時間: 捷鋒774 分享

        Android開發中硬件加速支持的使用方法

          這篇文章主要介紹了Android應用開發中硬件加速支持的使用方法,主要針對圖形繪制時的硬件加速與OpenGL調用,下面是學習啦小編帶來的關于Android開發中硬件加速支持的使用方法的內容,歡迎閱讀!

          Android開發中硬件加速支持的使用方法:

          Android從3.0(API Level 11)開始,在繪制View的時候支持硬件加速,充分利用GPU的特性,使得繪制更加平滑,但是會多消耗一些內存。

          開啟或關閉硬件加速:

          由于硬件加速自身并非完美無缺,所以Android提供選項來打開或者關閉硬件加速,默認是關閉。可以在4個級別上打開或者關閉硬件加速:

          Application級別:

          Activity級別:

          Window級別:

          復制代碼代碼如下:getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

          注意:目前為止,Android還不支持在Window級別關閉硬件加速。

          View級別:

        ?
        1
        myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

          注意:目前為止,Android還:不支持在View級別開啟硬件加速。

          檢測當前是否啟用了硬件加速:

        ?
        1
        2
        3
        4
        5
        6
        7
        8
        9
        // 方法一
        // 此方法返回true,如果myView掛在一個開啟了硬件加速的Window之下,
        // 也就是說,它在繪制的時候不一定使用了硬件加速,getDrawingCache
        myView.isHardwareAccelerated();
            
        // 方法二
        // 返回true,如果canvas在繪制的時候啟用了硬件加速
        // 盡量采用此方法來判斷是否開啟了硬件加速
        canvas.isHardwareAccelerated();

          控制硬件加速開關

          引言中說過控制硬件加速可以在不同層級進行,這樣可以避免因為一個繪制動作不支持而導致整個應用都不可以使用硬件加速這樣很愚蠢的情況發生。總共有四個層級,從上到下是:

          1. Application

          應用程序等級控制硬件加速,在AndroidManifest.xml中進行:

        ?
        1
        <application android:hardwareAccelerated="true" ...>

          在Android4.0以上(包含)默認就為true,即打開。如果整個應用都不想用硬件加速,則設定為false。

          2. Activity

          Activity等級的控制方法還是在AndroidManifest.xml中進行,如下展示了應用整體使用硬件加速,而某一個Activity不使用的例子:

        ?
        1
        2
        3
        4
        <application android:hardwareAccelerated="true">
         <activity ... />
         <activity android:hardwareAccelerated="false" />
        </application>

          3. Window

          窗口級控制,如果只是想讓某個窗口使用硬件加速:

        ?
        1
        2
        3
        getWindow().setFlags(
         WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
         WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

          4. View

          可以通過代碼在運行時控制單個View是否使用硬件加速:

        ?
        1
        myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

          LAYER_TYPE_HARDWARE即為使用硬件加速(GPU),LAYER_TYPE_SOFTWARE使用CPU進行繪制。

          理解View的繪制模型:

          1.沒有硬件加速:invalidate the view hierarchy ------> draw the view hierarchy

          2.有硬件加速:invalidate the view hierarchy ------> record and update the display list ------> draw the display list

          硬件加速的限制:

          目前,Android對硬件加速的支持并非完美,有些繪制操作在開啟硬件加速的情況下不能正常工作(具體的列表可以參考Android開發者文檔)。

          不過Android可以保證內置的組件和應用支持硬件加速。因此,如果應用中只使用了標準UI組件,可以放心開啟硬件加速。

          隨著Android的版本升級,相信一段時間之后,硬件加速可以得到完美的支持。

          開啟硬件加速之后的異常反應:

          1.某些UI元素沒有顯示:可能是沒有調用invalidate

          2.某些UI元素沒有更新:可能是沒有調用invalidate

          3.繪制不正確:可能使用了不支持硬件加速的操作, 需要關閉硬件加速或者繞過該操作

          4.拋出異常:可能使用了不支持硬件加速的操作, 需要關閉硬件加速或者繞過該操作

        看了Android開發中硬件加速支持的使用方法文章內容的人還看:

        1.電腦系統啟動硬件加速的方法介紹

        2.Win8系統關閉顯卡硬件加速的方法

        3.安卓學習方法有哪些

         

        631018 主站蜘蛛池模板: 国产精品一区二区黄色片| 欧美成本人视频免费播放| 东北女人毛多水多牲交视频 | 国产高清国产精品国产专区| 亚洲色欲色欱WWW在线| 视频一本大道香蕉久在线播放| 国产一区二区女内射| 91精品国产综合久久精品| 老师穿超短包臀裙办公室爆乳| 亚洲国产高清av网站| 亚洲成av人片乱码色午夜| 亚洲国产精品日韩在线| 吉川爱美一区二区三区视频| 精品夜夜澡人妻无码av| 成人午夜免费无码视频在线观看| 亚洲中文字幕成人综合网| 国产麻豆剧果冻传媒一区| 國产AV天堂| 国产日韩午夜视频在线观看| 久久这里都是精品二| 亚洲永久精品日韩成人av| 久久天天躁夜夜躁狠狠85| 亚洲国产精品久久久久婷婷图片| 无码少妇高潮浪潮av久久| 久久精品国产亚洲αv忘忧草| 久热久热免费在线观视频| 欧美精品人人做人人爱视频| 又大又硬又爽免费视频| 日本大香伊一区二区三区| 综合激情网一区二区三区| 午夜av高清在线观看| 国产在线98福利播放视频| 国产欧美国日产高清| 日韩国产精品一区二区av| 天天综合亚洲色在线精品| 国产成人av免费观看| XXXXXHD亚洲日本HD| 久热色精品在线观看视频| 国产一区二区日韩在线| 亚洲AV无码专区亚洲AV桃| 婷婷丁香五月激情综合|