忍者の改造ブログ(supersonicninja@xda)

L01FとHW01EとISW12HTとISW11HTの改造に関するブログです。

標準ROMのスクロールキャッシュ無効化

2013-07-13 03:54:03 | 日記
※元はPenneさんのブログに記載されていた記事なのですが、ブログが削除されているようなのでここで方法を紹介させていただきます。

・スクロールキャッシュについて
htcの標準ROM、いわゆるSENSEROMの標準ホームアプリはRosieと呼ばれます。このRosieはスクロールをした際にその画面を学習して保存し、次回の描写を高速化させるスクロールキャッシュという機能があります。
しかし、このスクロールキャッシュは出来が悪く、逆にスクロールを遅くしてしまう事がよくあります。そこで、Rosieのスクロールキャッシュを無効化することでスクロールを滑らかにしようというのが今回の記事の目的です。

・ダウンロード
既にスクロールキャッシュを無効化させたframework.jarをアップロードしておきました。→SkyDrive
お使いのICS標準ROM、またはICS標準ROMベースのROMの/system/framework/フォルダに上書きしてください。

・方法
この部分は自分で一からスクロールキャッシュを無効化したい人用に書きました。例えばframework.jarを既に弄っている人などです。普通は上記の「・ダウンロード」の物をつかうだけで十分です。

まずはAPK-Multitool等、apkをsmaliに展開・再圧縮できるツールをセットアップします。
次にROMの/system/framework/framework.jarをそれで展開します。そして中にある\android\widget\AbsListView.smaliをnotepad++等のテキストエディタで開きます。
編集する場所は三箇所です。

まずは1530行目あたりにある
.method private createScrollingCache()V
.locals 2

.prologue
const/4 v1, 0x1

.line 4431

const/4 v1, 0x1
という行を
const/4 v1, 0x0
に書き換えます。

次に2050行目あたりにある
.line 797
invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setAlwaysDrawnWithCacheEnabled(Z)V

.line 798
invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V

.line 800

invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
という行を
invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
に書き換えます。

最後に13987行目あたりにある
.method public setScrollingCacheEnabled(Z)V
.locals 1
.parameter "enabled"

.parameter "enabled"
という行を
.parameter "disabled"
に書き換えます。

後はAPK-MultiTool等で再びframework.jarに固め直し、元の場所に戻せば出来上がりです。

最新の画像もっと見る

コメントを投稿