现在的位置: 首页 > 综合 > 正文

Android 中如何给应用添加首次使用提示

2013年11月08日 ⁄ 综合 ⁄ 共 5136字 ⁄ 字号 评论关闭

现在 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 # ls
ls
GPhoto_PREF_3x0.xml
helper.xml
mobclick_agent_header_vStudio.Android.Camera360.xml
mobclick_agent_state_vStudio.Android.Camera360.xml
moto_bug.xml
pref_camera_3.0_beta2.xml
renren_sdk_config_2_.xml
scene_current_temp.xml
vStudio.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)","ap
pkey":"4c528da01d41c85ecf000211","sdk_version":"3.3","app_version":"3.0.3","lng":0,"device_id":"8654
07010000009","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":"And
roid","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 # exit
exit

再从手机端进应用,就会出现你想要看到的提示了。不神奇吧。

如果具体要看某一个配置文件,可以通过 adb shell pull /data/data/vStudio.Android.Camera360/shared_prefs/vStudio.Android.Camera360_preferences.xml  C:\

这时C盘根目录下就有了该文件,以任何文件编辑器打开均可。

你甚至可以直接更改某个设置值,再将该文件 push 到相应目录中去,看看有什么变化发生。

通过此种方式可以调试某个值是否有写错。

抱歉!评论已关闭.