1.
SharedPreferences存储的数据是以XML的格式以文件的方式自动保存的,在DDMS中的File Explorer中展开到/data/data/<package name>/shared_prefs下,以上面这个为例,可以看到一个叫做SETTING_Infos.xml的文件。
2.
这是Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。然而也有的设备是找不到deviceId的,这就会导致一些问题,可以用以下方法验证:
这个DEVICE_ID可以同通过下面的方法获取:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = tm.getDeviceId();
它会根据不同的手机设备返回IMEI,MEID或者ESN码,但在使用的过程中有以下问题:
- 非手机设备:最开始搭载Android系统都手机设备,而现在也出现了非手机设备:如平板电脑、电子书、电视、音乐播放器等。这些设备没有通话的硬件功能,系统中也就没有TELEPHONY_SERVICE,自然也就无法通过上面的方法获得DEVICE_ID。
- 权限问题:获取DEVICE_ID需要READ_PHONE_STATE权限,如果只是为了获取DEVICE_ID而没有用到其他的通话功能,申请这个权限一来大才小用,二来部分用户会怀疑软件的安全性。
- 厂商定制系统中的Bug:少数手机设备上,由于该实现有漏洞,会返回垃圾,如:zeros或者asterisks
要从别的类里边往activity里边塞数据的话可以用接口回调,而要从activity里边往别的类里边塞数据的话有时候就不能用接口了,有的可以直接在此类中写一个方法,在activity里边得到此类的对象,然后传数据到此类中需要数据的地方。
4.
Handler是主线程,可以修改UI.
5.
github上star top3的java状态机引擎框架:
(1) Squirrel-foundation
(2) Spring-statemachine
(3) Stateless4j(适用于App,轻量级的框架)
stateless4j的意思是stateless for java 哈哈哈