您的位置:网站首页 > 电器维修资料网 > 正文 >
三星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盘