您的位置:網站首頁 > 電器維修資料網 > 正文 >
三星S3/S4高階修改技巧
來源: 日期:2013-11-1 14:21:53 人氣:標簽:
1.關閉滾動緩存使系統滑動過度更加平滑
對于三星gt-i9300來說,1gb的ram空間確實有些吃緊,特別是在手機長時間運行或者是剛剛退出大型程序后,系統會出現十分明顯的卡頓。其實出現這種情況,并不是系統本身出現故障,而是官方系統的“滾動緩存”造成的:系統在長時間運行后會在ram中保存一些滾動緩存,所以我們可以關閉滾動緩存,讓界面滑動更加平滑流暢。
關閉系統頁面滾動緩存的方法比較簡單,首先將下載好的官方rom解壓,然后在系統目錄“system/framework/”中找到文件“framework2.jar”按照我們第一期介紹的反編譯方法,對其進行反編譯操作。
編譯成功在“framework2\smali_classes\android\widget\”目錄中找到文件“\abslistview.smali”然后利用notepad++打開文件。搜索“createscrollingcache”,然后將后面的值“const/4 v1,0x1”改為“const/4 v1, 0x0”。接著繼續搜索“isscrollingcacheenabled”,然后在第6行和第7行的代碼中找到值“iget-boolean v0, p0, landroid/widget/abslistview;->mscrollingcacheenabled:z”,并將它改為“const/4 v0, 0x0”。 后搜索“setscrollingcacheenabled”將代碼“parameter "enabled"”中的“enabled”改為“disabled”, 后將修改后的文件保存再重新編譯即可。
2.關閉s4媒體掃描讓系統更加節電
三星的官方系統從android 4.1.2版本開始,就一直存在媒體掃描耗電嚴重的情況,這是因為當系統檢測到手機插有外置tf卡后,每次開機都會自動對tf卡中的媒體文件進行掃描,這樣會造成大量的非正常耗電。我們同樣可以通過系統反編譯,手動關閉雞肋的媒體掃描功能。
將下載好的官方rom解壓,然后在系統目錄“system/framework/”中找到文件“framework2.jar”,將其反編譯后用notepad++打開編譯文件。搜索“method private isdrmenabled()z”,然后找到line代碼,9500是“line1829”,在line代碼后加入 “const/4 v0, 0x0”,同時將下一行代碼“iput-boolean v2, p0”中的v2改為v0,保存完成后進行編譯,這樣我們就手動關閉了媒體掃描功能。
3.修改代碼,讓撥號程序“秒開”
三星s3的官方系統從升級到android 4.1.2后,撥號程序有一個非常大的問題,當手機首次運行撥號程序時,打開程序會有3秒左右的延時。而進行系統ram清理后,打開撥號程序同樣會有幾秒鐘的延時,這樣很多用戶難以適應,畢竟電話功能是手機的基本屬性,經常卡頓的確讓人受不了。
出現這種情況的原因,是因為新系統的進程管理機制出現的改變。我們可以通過修改系統代碼,來實現撥號程序常駐內存,這樣再打開撥號程序時就不會出現延時了。
要修改撥號程序代碼,首先按我們上期介紹過的方法破解三星的官方簽名。然后在系統apk文件夾中找到“seccontacts.apk”文件,將其反編譯后在目錄中找到“androidmanifest.xml”文件,用notepad++打開后,在application標簽 “android:name="com.android.contacts.contactsapplication”后添加代碼“android:persistent="true"”保存并重新編譯即可。修改后就可以讓撥號程序常駐內存(ram),這樣撥號程序就不會在開啟時出現延時情況了。
@sniperhg
無名團隊(n-team)三星分隊隊員
論壇認證:機鋒論壇s4版塊版主
技術強項:mod修改,java程序編寫
微博:http://weibo.com/u/2414142072
擁有機型:三星s4,htc one,htc onex
經典rom作品:第二屆機鋒rom大賽參賽作品
大神技巧:利用java語言添加功能開關
不管是官方rom還是我們自己修改的第三方rom,它的目的都是想給用戶帶來良好的體驗。但是不同的用戶對系統功能有不同的喜好,同樣一個個性化功能,有的用戶想要打開,有的卻又想把功能關閉,但是如果能在系統設置項中加入專門的開關,讓個性化功能可以自由開關就會方便許多了。
但是在設置項中添加功能開關的操作比較復雜,在修改代碼時必須要用到java語言,而且要確認系統中已經安裝java環境。這里以在設置中添加“允許壁紙滾動”開關為例,告訴訴大家具體的修改方法。
1.改變程序界面布局,定義開關選項
注意:在進行具體操作時除了掌握反編譯操作之外,還要對android程序的結構有一定的了解,所以這里并不建議新手操作,而且在修改前一定要做好備份。
要在系統設置中加入功能開關,首先要編譯“secsettings.apk”文件,該文件存放在系統apk文件夾中。進行反編譯操作后,在xml目錄中找到“preferenceactivity”和“preferencefragment”兩個布局文件,這兩個文件對應手機設置項中的“設置-我的設備-顯示”選項。然后在xml目錄中找到“display_settings.xml”文件,用notepad++打開文件并在 上面加入代碼“<checkboxpreference android:title="@string/sniperhg_scrollwallpaper_string" android:key="sniperhg_scrollwallpaper"android:widgetlayout="@touchwiz:layout/preference_widget_twcheckbox" />”。接下來我們要在語言文件中加入字符代碼,首先將“sniperhg_scrollwallpaper_string”字符串添加到“strings.xml”文件中,然后在資源文件夾里對應的目錄里(因為是中文系統,所以目錄為values-zh-rcn)的strings.xml里加入“<string name="sniperhg_scrollwallpaper_string">允許壁紙滾動</string>”。這里我們完成對程序界面布局的改變。
如圖我們在設置中加入了開關選項“允許壁紙滾動”
2.為控制開關添加具體功能
我們接下來要對這個開關進行控制,還需要修改對應的smali文件,讓其響應我們設置的應開關功能。在反編譯后的secsettings.apk”文件夾中,找到displaysettings.smali文件,并用notepad++打開,然后搜索函數“.method public onpreferencechange”,并加入代碼“android:key="sniperhg_scrollwallpaper” ,然后從http://go.icpcw.com/c/36app.htm下載“代碼.rar”,解壓后找到“smail代碼.txt”,并把其中的內容加入文件中。
secsettings.apk我們處理完畢了,但是真正實現桌面壁紙滾動的代碼并不存在于這個apk里,而是在三星的touchwiz啟動器seclauncher3.apk里。修改后我們就可以通過改變數值來判斷壁紙十分滾動,修改contentobserver就可以發揮作用了。
反編譯secsettings.apk后,我們要修改workspace值,為其添加一個內部分類,這個分類的作用就是動態創建一個contentobserver來控制監聽sniperhg_scrollwallpaper這個值的變化,具體代碼在“代碼.rar”中的“修改workspace值.txt”文件中。
上面的代碼的意思是動態創建一個contentobserver來控制監聽“sniperhg_scrollwallpaper”的值,一旦發生變化就調用主類里的方法“updatesetting”來控制功能是否激活。這個方法的代碼在“代碼.rar”中的“控制激活.txt”中可以查看。
后我們需要對contentobserve進行注冊,只需要在workspace這個分類開始的地方加入代碼“new settingsobserver(new handler()).observe();”即可完成注冊。
這樣我們將反編譯后的apk重新編譯,并用“廚房”工具將rom重新打包,重新刷機即可在設置中看到我們自己定制的個性開關。掌握了這個方法,我們就可以在系統中自由設置自己需要的功能開關了。
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: 淺析手機信號人腦吸收率
- 下一篇: Nexus 7二代 照樣用U盤