在系统中system/app文件夹中。
创新互联公司专注于渝北网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供渝北营销型网站建设,渝北网站制作、渝北网页设计、渝北网站官网定制、重庆小程序开发服务,打造渝北网络公司原创品牌,更为您提供渝北网站排名全网营销落地服务。
在android系统中安装软件时,系统会将其安装在设定好的路径当中,即system/app路径。后来下载的APP可以卸载,但系统自带的APP不能卸载,否则会引发系统的崩溃。
在安装APP时,也可以直接将文件复制到手机里(手机内存、Storage Card都可以),在手机上执行该CAB文件即可安装。
扩展资料
android系统中的app不同格式安装:
1、CAB格式,直接将文件copy到手机里,都可以在手机上执行该CAB文件即可安装。
2、EXE格式,EXE格式的程序可分为手机上直接运行(即绿色软件的形式)和连接电脑同步安装2种形式。
3、免安装软件(绿色软件),将文件直接拷贝到手机里(手机内存、Storage Card都可以)即可运行。这种软件在网上下载时一般是RAR或ZIP格式压缩包,只需先在电脑上解压,将解压出来的文件夹拷贝到手机里即可运行。
4、Cpl文件,将文件直接拷贝到手机windows目录下,即可在设置中出现相应的选项。如SoftKeyAppleEx.cpl对应会出现软件设置选项。
参考资料:百度百科-手机软件
原来,只要把文件写在这里的话,可以不用动态申请权限,只要在manifest里面声明权限就ok了;
应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
并且在API
6.0之后,根目录文件存储是需要用户授权的,就算你在AndroidManifest.xml中配置了存储权限,用户不授权也是写不进去了。
SD卡读写权限:
如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
通过
可以得到
这个目录里面,一般放一些长时间保存的数据
方法可以获取到 SDCard/ Android /data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过
方法可以获取到
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。并且
这个方法获得的文件存储路径适用于6.0以后系统,只要AndroidManifest.xml配置读写权限了,就不需要用户再授权了。
正常开发中获取存储路径的方法是:
可以看到,当SD卡存在或者SD卡不可被移除的时候,就调用getExternalCacheDir()方法来获取缓存路径,否则就调用getCacheDir()方法来获取缓存路径。前者获取到的就是 /sdcard/Android/data/application package/cache 这个路径,而后者获取到的是 /data/data/application package/cache 这个路径。
设置-应用-应用详情里面的”清除数据“与”清除缓存“选项分别对应的是data/data/application package/和data/data/application package/cache
external storage (外部存储):
Environment.getExternalStorageDirectory()SD根目录:/mnt/sdcard/ (6.0后写入需要用户授权)
context.getExternalFilesDir(dir)路径为:/mnt/sdcard/Android/data/ package name /files/…
context.getExternalCacheDir()路径为:/mnt/sdcard//Android/data/ package name /cache/…
internal storage(内部存储):
context.getFilesDir()路径是:/data/data/ package name /files/…
context.getCacheDir()路径是:/data/data/ package name /cach/…
手机浏览器下载的文件位置如下:
我们首先找到手机上的浏览器打开。打开之后我们点击浏览器的菜单按钮。进入到菜单页面之后我们点击下面的展开选项展开。展开了全部菜单功能之后就可以看到我的下载选项了。点击进入到我的下载页面,在这个页面下我们在已下载就可以找到我们下载的历史记录了。如果没有出现在已下载里面的话我们点击右上角的菜单。点击这个菜单下面的文件管理直接进入到我们文件下载存放的文件夹目录中查找即可。
分为:内部存储和外部存储
如何区分内部存储和外部存储:可以从物理和逻辑区分
从物理的角度区分,内部存储就是手机自带存储空间,外部存储就是外部接入的存储空间例如SD卡
从逻辑意义上区分,data,system 目录就是手机的内部存储,而 mnt 或者 storage目录下的sdcard0指向的sdcard目录就是外部存储。如果是手机自带的外部存储被称为机身外部存储,外置的SD卡则称之为外部存储。当然两者都称为外部存储也没关系。这里描述的内部存储和机身外部存储都属于机身存储;
逻辑区分是从4.4以上版本开始的;
获取内部存储路径和api对应关系
1,通过Environment
2,通过上下文Context
Build.VERSION_CODES.LOLLIPOP及以上版本新增的API
Build.VERSION_CODES.N及以上版本新增的API
特点:
1、内部存储路径中的文件是分类存储的,我们无法干涉,除了cache目录,别的目录系统不会自动创建
2、除了files目录,别的目录我们几乎都是无法手动操作的
3、别的App几乎无法访问内部存储中的数据,除了用非法手段或者我们主动暴露
4、内部存储目录下的文件夹及文件会随着app的卸载而被系统自动删除
外部存储又可分为共有目录和私有目录;
私有目录
私有目录:不需要访问权限
Android 在外部存储空间中也提供了特殊目录供App存放私有文件,该路径为:/storage/emulated/0/Android/data/包名/
注意:应用安装之后/storage/emulated/0/Android/data/是没有对应的应用文件夹的,需要手动调用对应的API创建;
获取私有目录路径
共有目录
共有目录:需要申请权限才能访问
权限:6.0以上需要动态申请
获取共有目录的API 29中已过时:
getExternalCacheDir().getAbsolutePath();
路径:/storage/emulated/0/Android/data/packagename/cache
可以作为外部缓存的路径,卸载app时,会自动删除文件
Environment.getExternalStorageDirectory().getAbsolutePath();
路径:/storage/emulated/0
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
路径:/storage/emulated/0/DCIM
getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath();
路径:/storage/emulated/0/Android/data/packagename/files/Pictures
在平时开发当中,我们可能会纠结什么文件该存储在哪个目录下面,要么是不确定放哪,要么是放多了以后放乱了。那就弄清楚哪些文件存哪里吧。
总结:
getCacheDir和getFilesDir目录必须是root的手机在文件操作系统中才能看到。如果在应用程序中清空数据或者卸载应用,那这两个目录下的文件也将会被清空。
getExternalCacheDir()与getExternalFilesDir(null)直接在文件系统下Android/data/packagename能看到。如果应用卸载,该目录下的文件会被删除掉。
Environment.getExternalStorageDirectory()目录下创建的文件不会因程序卸载被清除掉。
Android 10.0不需要再动态申请文件读写权限,默认可以读写自己的沙盒文件和公共媒体文件。Android 10.0在外部存储设备中为每个应用提供了一个“隔离存储沙盒”。任何其他应用都无法直接访问自己应用的沙盒文件。沙盒,简单而言就是应用专属文件夹,并且访问这个文件夹无需权限。谷歌官方推荐应用在沙盒内存储文件的地址为Context.getExternalFilesDir()下的文件夹,不能再访问Environment下的路径了。
对于暂时不想适配的,但是需要访问文件的,可以把targetSdkVersion设置为28或以下。