Android 中如何给应用添加首次使用提示
来源:互联网 发布:linux系统命令大全 编辑:程序博客网 时间:2024/06/05 18:05
现在 Android 平台中很多应用在安装后,首次进入应用时,会有一个该应用的功能宣传或者提示的界面。
如下图是 360Camera 的一个首次应用提示界面:
通常会有好几幅画面,用来介绍该应用的一些特色。这里只截取一屏……
那么类似的这种功能是如何实现的呢?
一般都会设置一个 Preferece 配置项。譬如
public static final String KEY_FIRST_USE_NOTE = "pref_first_use_note_key";
并且将其默认值设置为 TRUE
当用户首次进入该应用时,就会判断该值,若该值为 false, 则不会显示该画面。
否则,就显示该画面。显示完该画面后或者说用户操作完该画面后顺利进入到应用时,将该 preference 值写为 false
private void showFirstUseNote(){Log.v(TAG,"showFirstUseNote ...");if (mPreferences.getBoolean(Settings.KEY_FIRST_USE_NOTE, true)){//do show the note work here}}
private void writeFirstUseNoteValue() { // Clear the preference. Log.v(TAG,"writeFirstUseNoteValue KEY_FIRST_USE_NOTE false"); Editor editor = mPreferences.edit(); editor.putBoolean(Settings.KEY_FIRST_USE_NOTE, false); editor.apply();}
大部分第一次使用时提示的功能都是这样处理的。
如果第一次使用时没留意看那些提示,事后又想再看一下也是有办法的。
当然先要获取 root 权限。
adb remount success 后,进入到 /data/data/vStudio.Android.Camera360/shared_prefs 目录下,
执行 ls 命令即可看到 该应用有关的配置文件
root@android:/data/data/vStudio.Android.Camera360/shared_prefs # lslsGPhoto_PREF_3x0.xmlhelper.xmlmobclick_agent_header_vStudio.Android.Camera360.xmlmobclick_agent_state_vStudio.Android.Camera360.xmlmoto_bug.xmlpref_camera_3.0_beta2.xmlrenren_sdk_config_2_.xmlscene_current_temp.xmlvStudio.Android.Camera360_preferences.xml
执行 cat * 命令即可看到该应用所有的配置项,如果有兴趣,你可以根据设置字段名字去猜测该设置的意思
root@android:/data/data/vStudio.Android.Camera360/shared_prefs # cat *cat *<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><boolean name="mSetting_IsSafeQuit" value="false" /><int name="mSetting_TilfShiftDirect" value="0" /><string name="mLastSavePath">/storage/sdcard0/DCIM/Camera/</string><int name="mSetting_TilfShiftPosBL" value="50" /><boolean name="mSetting_chk_use_stability" value="false" /><string name="SceneTemplateParam"></string><int name="mSetting_TilfShiftSizeBL" value="10" /><string name="SceneTemplateFile"></string><int name="mSetting_EffectIndex" value="1" /><int name="mSetting_CapDelayTimeIndex" value="0" /></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><boolean name="first_use_3x0_155" value="false" /></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><string name="header">{"os":"Android","package":"vStudio.Android.Camera360","cpu":"ARMv7 Processor rev 0 (v7l)","appkey":"4c528da01d41c85ecf000211","sdk_version":"3.3","app_version":"3.0.3","lng":0,"device_id":"865407010000009","resolution":"800*480","access":"Wi-Fi","country":"CN","os_version":"4.1.2","version_code":155,"idmd5":"6f86a11b1dda5f5bca7e11ec452","device_model":"vivo Y11","timezone":8,"sdk_type":"Android","carrier":"","language":"zh","channel":"鍐呯疆BBKPD1216T","lat":0}</string></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><long name="traffics_down" value="4837" /><string name="session_id">c330d7b5bd6920df0918bf413a2b4b26</string><long name="duration" value="0" /><long name="end_millis" value="-1" /><long name="start_millis" value="1367149680521" /><string name="appkey">4c528da01d41c85ecf000211</string><long name="traffics_up" value="3143" /><string name="activities"></string></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><boolean name="isSqlBug" value="true" /><boolean name="isStart" value="true" /></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><int name="curr_indexbutton_vibrate" value="0" /><int name="curr_indexsave_org_photo" value="1" /><int name="curr_indexpic_size" value="2" /><int name="curr_indexwhtie_balance" value="0" /><int name="curr_indexcontranst" value="1" /><int name="curr_indexsound" value="1" /><int name="curr_indexsave_path" value="0" /><int name="curr_indexbrightness" value="1" /><int name="curr_indexexposure" value="3" /><int name="curr_indexsharpness" value="-1" /><int name="curr_indexfocus_mode" value="0" /><int name="curr_indexsaturtion" value="-1" /><int name="curr_indexflash" value="0" /><int name="curr_indexshoot_mode" value="0" /><int name="curr_indexgps" value="1" /><int name="curr_indexcomposition" value="0" /><int name="curr_indexzoom" value="0" /><int name="curr_indextouch_taking" value="0" /><int name="curr_indexpreview_size" value="0" /><int name="curr_indexiso" value="0" /><int name="curr_indexframing" value="0" /><int name="curr_indexpic_quality" value="2" /></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map /><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><int name="current_camera_mode" value="0" /></map><?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><string name="auto_checker_time">2013-4-28 涓嬪崍7:17:26</string><string name="list_tiltshiftpicsize">1</string><boolean name="check_gps" value="true" /><boolean name="chk_resizetomin" value="false" /><string name="list_photosize">2</string><string name="list_savepath">0</string><boolean name="has_bind_auto_update" value="true" /><string name="list_screen_brightness">1</string><string name="list_photo_quality">2</string><boolean name="pref_save_org_photo" value="true" /><long name="last_start_millis" value="20130428" /></map>
执行 rm * 命令即可清除所有的配置项。
root@android:/data/data/vStudio.Android.Camera360/shared_prefs # rm *rm *root@android:/data/data/vStudio.Android.Camera360/shared_prefs # exitexit
再从手机端进应用,就会出现你想要看到的提示了。不神奇吧。
如果具体要看某一个配置文件,可以通过 adb shell pull /data/data/vStudio.Android.Camera360/shared_prefs/vStudio.Android.Camera360_preferences.xml C:\
这时C盘根目录下就有了该文件,以任何文件编辑器打开均可。
你甚至可以直接更改某个设置值,再将该文件 push 到相应目录中去,看看有什么变化发生。
通过此种方式可以调试某个值是否有写错。
- Android 中如何给应用添加首次使用提示
- android应用首次运行时半透明提示
- GridView 中如何给删除按钮添加提示
- 如何给Android应用添加分享到新浪微博
- android中如果activity中应用fragementlayout布局文件,如何给其中的控件添加事件监听。
- 如何给文件夹添加提示信息
- android 如何判定是否首次使用
- Android中如何给app widget添加复杂view
- Extjs中给button添加悬浮提示
- 如何给Android添加中文
- android_添加服务给应用使用
- 如何在自己开发的android应用中添加广告
- 如何在Android 内核源码树中添加app应用?
- 如何在Android 内核源码树中添加app应用?
- Android:如何把一个应用添加到Settings列表中...
- iOS 中如何添加应用自己的字体,使用萍方体
- Android之应用首次使用的欢迎界面实例
- Android应用--首次使用的欢迎界面,之后不再显示
- 一年工作经验的java工程师从工作初到今天的所有收藏的…
- 点滴积累【JS】
- STL vector 使用方法简介(一)
- UVA 537Artificial Intelligence?
- php通过 thrift访问hadoop的hive
- Android 中如何给应用添加首次使用提示
- 关于 Hibernate3 与 Mysql5.5 连接时出现的中文乱码问题
- 开源软件与自由软件
- C++ 多线程编程总结
- 用户体验设计的五个原则【转载内容】
- 仿微博字符统计和本地存储功能的实现
- python lambda
- Asset限制文件大小
- asp.net web页面显示服务器绝对路径下图片