考量文字渲染效能,Android Q將預設不處理斷字
<div class="field field-name-field-news-column-category field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/tags/%E6%96%B0%E8%81%9E">新聞</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"> <p><a href="https://android-developers.googleblog.com/2019/07/whats-new-for-text-in-android-q.html">Google在Android Q中更改了文字顯示</a>,不只拿掉斷字功能(Hyphenation),也讓開發者可以使用多個字體家族(Font Families)創建字體(Typeface),並且改進了一些常用的文字樣式API。</p> <p>Google研究發現,當在顯示文字時啟用斷字功能,有70%的CPU時間花費在斷字上,其他文字的處理工作只占30%,而且應用程式中並非所有TextView都需要斷字,因此考量效能影響因素,Google決定在Android Q和AppCompat v1.1.0中,預設關閉斷字功能,需要的開發者必須要額外手動啟用。</p> <p>現在開發者可以在同一個TextView中使用多個自定義字體。Google以按鈕類別作為例子,說明這個改進的好處,由於一個按鈕只能設置單個字體實例,而在之前開發者只能使用單一字體家族創建字體,而在Android Q中,允許開發者使用新的API,為每個字體增加最多64個字體家族。</p> <p>Google提醒,一個字體家族物件中,不能包含來自不同字體家族的字,也不能在相同字體家族中,放入相同樣式的字,例如把Lato、Kosugi與Material等字體放到相同字體家族,或是將兩個粗體字放到相同字體家族,都是無效的配置。</p> <p>由於Android支援了超過100種的語言,而不同的字體支援不同的字符組,因此要知道哪一種系統字體可以渲染出指定的字符並不容易,像是遊戲、文件瀏覽器以及瀏覽器要自己進行文字渲染時,便需要這樣的訊息,而在Android Q中,Google提供了新的API,能夠直接用字串檢索出支援的系統字體。</p> <p class="rtecenter"><img alt="" src="https://s4.itho.me/sites/default/files/images/image2(10).png" style="width: 600px;" /></p> <p class="rtecenter">Android Q也更新了系統的表情符號,包含一些以身心障礙主題以及59個性別兼容設計的表情符號,另外,也還增加了多種族伴侶、可愛動物以及家庭用品類別的表情符號。<br /><img alt="" src="https://3.bp.blogspot.com/-bJFIpuEJ6h8/XR0k1nWCf3I/AAAAAAAAJjI/sDxEbqwLqu85dUZ-UVGY9w1UOV7-YldeACLcBGAs/s1600/image3.gif" style="width: 350px;" /></p> </div></div></div>