目录
目录
系统屏保源码有哪些
在设置中显示的屏保选项有哪些
屏保选项是如何获得的
多久出现屏保
修改方法
我的应用
项目需求
处理方式
遇到一个诡异的问题
系统屏保源码有哪些
如果要自定义屏保可以参考这里的源码,清晰易懂,比网上教程好
屏保
源码位置
BasicDream
packages\screensavers下
PhotoTable
packages\screensavers下
WebView
package\screensavers下
SystemUI
frameworks\base\packages下
在设置中显示的屏保选项有哪些
自带的屏保选项
TurnOff
Colors
BackDrop
其中BackDrop没有源码,是google现成的apk。
SystemUI的是DessertCase。没有显示出来,是因为在SystemUI的AndroidManifest.xml中,定义这个enable为false。
android:exported="true"
android:label="@string/dessert_case"
android:permission="android.permission.BIND_DREAM_SERVICE"
android:enabled="false"
android:process=":sweetsweetdesserts"
>
intent-filter>
service>
屏保选项是如何获得的
学习这个2个类:
1.com.android.settingslib.dream.DreamBackend.java
2.com.android.tv.settings.device.display.daydream.DaydreamFragment.java。
多久出现屏保
系统可设定的最短时长是5分钟。
要更改时长,可以改Settings的源码(在packages\apps\)下。
详细看
com.android.tv.settings.device.display.daydream.DaydreamFragment.java。
修改方法
Settings源码
res\values\arrays.xml中修改sleep_timeout_values数组即可
300000item>
900000item>
1800000item>
3600000item>
7200000item>
-1item>
string-array>
现在系统原生是这样的,改成满足你需求的即可。
我的应用
项目需求
更改屏保图片,用于参展
处理方式
在SystemUI中新增自己的屏保文件、修改AndroidManifest.xml,替换机顶盒中的应用后,选中我们自己的屏保,OK。
遇到一个诡异的问题
我把新的屏保图片放进res\drawable-nodpi时,在java文件中引用,编译总是说无法识别这个文件,后来只能把新文件命名为和原来已经存在的文件一致,比如dessert_android这类命名。