浅析Android M新功能Adoptable Storage Devices(适配的存储设备)

本文介绍了Android M系统中的Adoptable Storage Devices功能,它允许用户将外部存储设备作为内部存储使用,扩展了设备的存储容量,并确保了数据安全。通过这个功能,用户可以方便地移动应用和隐私数据,而不再依赖第三方工具。文章详细阐述了从用户界面到系统底层的实现过程,包括格式化选项、内部存储与外部存储的区分以及涉及的系统组件和交互流程。
摘要由CSDN通过智能技术生成

1.前言

        从所有的Nexus手机和平板都没有MicroSd卡槽,可以知道谷歌并不喜欢在Android设备上使用外部存储,从软件工程师的角度来讲是可以理解的,但是主流消费者明显有更强烈的需求。在Android M系统中,谷歌观念发生了改变,终于提供了官方的方式让用户将应用移动到外部存储上,其新功能名字叫“Adoptable Storage Devices”。

2.Adoptable Storage Devcies的作用

        Adoptable Storage Devices使系统获得了更大的存储容量,并且使用户可以自由移动应用和隐私数据到外部存储设备,不在需要第三方工具。用户使用Android设备时,可以主动的选择把外部存储设备格式化为常规移动存储或者系统内部存储。在格式化时系统给了两种选择:(1)Use as portable storage(for moving photos and other media between divices),仅仅作为外部存储设备;(2)Use as internal storage(for storing anything on this device only,including apps and photos),包裹一个加密层后,能够作为内部存储空间存储应用和隐私数据,经过加密后,该存储设备就不能再被别的设备使用。

3.Adpotable Storage Decices实现过程

        本节主要介绍从framework层到vold层的过程。主要涉及类如下:

StorageSettings–>StorageWizardInit–>StorageWizardFormatConfirm–>StorageWizardFormatProgress–>MountService–>NativeDaemonConnector–>commandlistener.cpp

3.1 当需要格式化时,用户进入格式化选择界面(StorageWizardInit类),在StorageSettings:: onPreferenceTreeClick()中DiskInitFragment.show(this, R.string.storage_dialog_unmountable, vol.getDiskId())将触发格式化选择界面。相关代码如下:

    public static class DiskInitFragment extends DialogFragment {
        …
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            …
            builder.setPositiveButton(R.string.storage_menu_set_up,
            
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值