精华内容
下载资源
问答
  • Android开发:文件放在哪个文件夹

    千次阅读 2015-04-21 15:51:04
    应用程序运行的过程中如果需要向手机上保存数据,一般是把数据保存SDcard中的。 大部分应用是直接SDCard的根目录下创建一个文件夹,然后把数据保存文件夹中。 这样当该应用被卸载后,这些数据还保留...
    应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。
    大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。
    这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。
    如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?

    通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
    通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

    如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

    而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项


    获取文件夹目录相关方法,如下:

    Environment.getDataDirectory() = /data
    Environment.getDownloadCacheDirectory() = /cache
    Environment.getExternalStorageDirectory() = /mnt/sdcard
    Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
    Environment.getRootDirectory() = /system
    getPackageCodePath() = /data/app/com.my.app-1.apk
    getPackageResourcePath() = /data/app/com.my.app-1.apk
    getCacheDir() = /data/data/com.my.app/cache
    getDatabasePath(“test”) = /data/data/com.my.app/databases/test
    getDir(“test”, Context.MODE_PRIVATE) = /data/data/com.my.app/app_test
    getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
    getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test
    getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
    getFilesDir() = /data/data/com.my.app/files

    引用:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=273674&page=1#pid2695014

    展开全文
  • 当时自己刚开始做安卓的时候,UI设计师问我,要什么格式的图? WHAT?现在心里终于有点那啥数了。首先,我们要用的图片资源能放在哪? ...安卓如果5种分辨率的图片都有的话,应用会自动安卓手机

    当时自己刚开始做安卓的时候,UI设计师问我,要什么格式的图? WHAT?现在心里终于有点那啥数了。

    首先,我们要用的图片资源能放在哪?

    图1
    图1
    图2
    图2
    其实mipmap与drawable并没有太严格的区别。只是mipmap在图片缩放上有一定的图片优化
    接着我们要了解hdpi,ldpi,mdpi,xhdpi,xxhdpi的区别
    图3
    图3
    安卓如果5种分辨率的图片都有的话,应用会自动安卓手机最接近的分辨率去显示图片。当然,我的话一般只要xhdpi一套图,这样应用也会去根据手机分辨率去缩放

    我们问UI要什么样的图呢?

    两种方式
    1.五套图全要,UI设计师的切图软件可以直接按照五个文件夹进行分类切图。但是重命名图片名会很累。除非你和UI设计师沟通好所有的图片名字,然后他去改好给你。
    2.拿来给IOS切的图,取出一套2倍图,也就是xhdpi,这样会适配很多的主流机型,然后有问题的图再要五套。

    2倍图是什么?

    请看图三我圈红的部分,这就是UI设计师口中的倍率,IOS必须切的图是1倍图,2倍图,3倍图。图片命名规则是@1,@2,@3代表倍率。这也就是我们的mdpi,xhdpi,xxhdpi。

    图片放在哪个文件夹?

    我相信如果你把上文看完了,该放哪个文件夹,心里该有点B数了吧。

    扩展知识

    px: pixel(像素)我们通常说的分辨率是像素单位 比如320px*480px
    dpi:即屏幕密度 指1英寸包含多少像素,安卓的density就是dpi,知道dp和px互相换算的童鞋应该知道这个
    dp: 我们经常用到的dp不是这里的dpi(屏幕密度),而是dip,dp=(dpi/160)* px 当dpi屏幕密度是160时,1dp=1px 也就是我们的倍率是1(见图三)

    安卓的logo在ldpi是36px*36px,其他的请自行换算

    展开全文
  • 然后把mrp游戏放进QQGame文件夹里面,在手机应用软件菜单里,运行QQ网游大厅就行了如果没有的MulGame文件夹,你就找applist文件夹在那里,把文件按我说的放到applist同一个文件夹内试试。这个是最新的QQ网游大厅,...
  • 应用产生背景:最近公司要实现TV端浏览用户照片的功能,之前通过拔插U盘/SD卡的方式,预先往用户文件夹存入图片。后来觉得这种方式特别繁琐,而且还得区分是哪个用户的文件夹(相册)。所以利用应用部署网页,采用...

    应用产生背景:最近公司要实现在TV端浏览用户照片的功能,之前通过拔插U盘/SD卡的方式,预先往用户文件夹存入图片。后来觉得这种方式特别繁琐,而且还得区分是哪个用户的文件夹(相册)。所以利用应用部署网页,采用扫描二维码方式上传图片

    电视端:


    手机页面:


    部署网页利用到了AndServer,一个Android端的web服务器

    框架github地址:https://github.com/yanzhenjie/AndServer

    网页UI地址:https://github.com/Tencent/weui

    将上传网页放入项目assets目录下

    开启服务,部署网页

    		mAssetManager = getAssets();
    
    		AndServer andServer = new AndServer.Build().port(8080).timeout(10 * 1000)
    				.registerHandler("upload", new PhotoUploadHandler(this))
    				.website(new AssetsWebsite(mAssetManager, ""))
    				.listener(mListener).build();
    
    		mServer = andServer.createServer();
    服务端保存图片

    	FileItemFactory factory = new DiskFileItemFactory(1024 * 1024, saveDirectory);
    			HttpFileUpload fileUpload = new HttpFileUpload(factory);
    			List<FileItem> fileItems = fileUpload
    					.parseRequest(new HttpUploadContext((HttpEntityEnclosingRequest) request));
    			for (FileItem fileItem : fileItems) {
    				if (!fileItem.isFormField()) {
    					String fileName = fileItem.getName();
    			
    					if (fileName.contains("/") || fileName.startsWith("image.")) {
    						fileName = FileUtils.getCurrentTimes() + ".jpg";
    					}
    					File uploadedFile = new File(saveDirectory, "/" + fileItem.getFieldName() + "/" + fileName);
    
    					if (uploadedFile.exists()) {
    						continue;
    					}
    					LogUtils.d("ImagePath:" + uploadedFile.getPath());
    					fileItem.write(uploadedFile);
    				}
    			}



    展开全文
  • 2、暗拍功能:程序打开时,会启动前置摄像头没有声息地暗地里拍下操作者的照片存放BianQian/Photo文件夹下,并以打开应用操作的时间为图片名,用户可以通过此功能知道谁打开此应用。为了防止占据大量空间,该...
  • 2、暗拍功能:程序打开时,会启动前置摄像头没有声息地暗地里拍下操作者的照片存放BianQian/Photo文件夹下,并以打开应用操作的时间为图片名,用户可以通过此功能知道谁打开此应用。为了防止占据大量空间,该...
  • 顺序随意,哪个放在上面,哪个就显示上面 达到DIY百变首页效果! +-------------+ 插件安装方法 +-------------+ source -- 直接上传整个source文件夹覆盖根目录,覆盖一个文件是去除验证文件,所以...
  • 计算机应用技术 实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced ...
  • 当我们将手机连接到电脑上时,我们发现SD卡的根目录下生成了成百上千的由各种应用程序创建的文件夹,导致我们也不知道哪个文件夹是用来干嘛的,这正因为这样安卓开发人员经常受到用户的吐槽。 的确作为一个安卓...

    前言

    当我们将手机连接到电脑上时,我们发现在SD卡的根目录下生成了成百上千的由各种应用程序创建的文件夹,导致我们也不知道哪个文件夹是用来干嘛的,这正因为这样安卓开发人员经常受到用户的吐槽。
    的确作为一个安卓开发者,我们的确不应该将我们应用的数据直接存到SD卡的根目录下,这样当手机安装了大量的app时,SD卡根目录会迅速变得杂乱不堪。
    获取SD卡的根目录(/storage/sdcard0):

    File file = Environment.getExternalStorageDirectory();
    

    为了方便管理,我们一般将app中的文件分为两种:app私有文件app公共文件

    接下来我们将针对这两类文件分别应该存放在什么样的路径下做具体的讲解。

    app公共文件

    app公共文件指的是那些不依赖于某特定app的文件,例如照片等。
    这类文件当我们删除应用之后,还应该保留在手机上的,不应该随着删除应用而被删除掉。
    对于这类文件,Android给我们提供了特定的目录,即SD卡的九大公有目录,我们可以通过Environment.getExternalStoragePublicDirectory(String type)来进行获取,这些目录的type都是以DIRECTORY开头的,例如:DIRECTORY_MUSIC , DIRECTORY_PICTURES.
    使用如下代码访问:

    File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    

    SD卡内置的九大公有目录一览表:

    方法 路径 用途
    Environment.DIRECTORY_ALARMS /storage/sdcard0/Alarms 警报的铃声
    Environment.DIRECTORY_DCIM /storage/sdcard0/DCIM 相机拍摄的图片和视频保存的位置
    Environment.DIRECTORY_DOWNLOADS /storage/sdcard0/Download 下载文件保存的位置
    Environment.DIRECTORY_MOVIES /storage/sdcard0/Movies 电影保存的位置
    Environment.DIRECTORY_MUSIC /storage/sdcard0/Music 音乐保存的位置
    Environment.DIRECTORY_NOTIFICATIONS /storage/sdcard0/Notifications 通知音保存的位置
    Environment.DIRECTORY_PICTURES /storage/sdcard0/Pictures 下载的图片保存的位置
    Environment.DIRECTORY_PODCASTS /storage/sdcard0/Podcasts 用于保存podcast(博客)的音频文件
    Environment.DIRECTORY_RINGTONES /storage/sdcard0/Ringtones 保存铃声的位置

    APP私有文件

    这类文件应该是随着app删除而一起删除的,它们可以被存储在两个地方:internal storage 和 external storage 。 internal storage就是手机自带的一块存储区域,通常很小;external storage就是通常所说的SD卡,通常很大,有16GB,32GB等。

    internal storage很小,所以你就应该很正确的使用它,因为SD卡有可能会被用户卸下,换成新的,所以SD卡不是任何时间都可用的,因此我们必须将一些重要的数据库文件以及一些用户配置文件存放在internal storage中。将一些大的图片或文件等缓存放到external storage中。

    存储在internal storage

    目录为data/data/< package name >/files/
    访问方法为:

    File filesDir = getFilesDir();
     Log.i(TAG,"file_dir="+filesDir);
    

    在这里插入图片描述
    众所周知我们app中创建的SharedPreference配置文件默认就是保存在该目录下的。

    Android提供了两种方法来快捷的访问内部存储目录:getCacheDir()和getFilesDir()方法:
    1,getCacheDir()方法用于获取/data/data/< package name>/cache目录
    2,getFilesDir()方法用于获取/data/data/< package name>/file目录

    存储在external storage

    对于需要存储在SD卡上的私有文件我们不应该直接存在SD卡的根目录下,而应该存在mnt/sdcard/Android/data/< package name >/files/…这个目录下。这类文件应该随着App的删除而一起删除。例如一种格式的电子书,只有该app才可以打开,如果用户删除了该app,那么留下来的电子书就成为了一种无法打开的垃圾文件,所以应该随着该app一起删除掉。

    获得这个路径的方法:

    File externalFilesDir = getExternalFilesDir(null);
     Log.i(TAG, "externalFileDir = "+externalFilesDir);
    

    在这里插入图片描述
    我们注意到上面的getExternalFilesDir(null)参数传入的为null,这样默认访问的是files文件夹,我们可以指定子文件夹:

    File externalFilesDir = getExternalFilesDir("Caches");
     Log.i(TAG, "externalFileDir = "+externalFilesDir);
    

    在这里插入图片描述

    SD卡操作时必须添加权限

    ① SDCard中创建与删除文件权限

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    

    ② 从SDCard中读取文件的权限

    < uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    

    ③ 向SDCard中写入文件的权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    

    判断SD卡是否可用

    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
        // SD卡可用
    } else {
        Toast.makeText(MainActivity.this,"SD卡不可用,请检查SD卡",Toast.LENGTH_LONG).show();
    }
    

    创建File对象的三种方式:

    File对象代表一个具体的文件或者一个文件夹,其构造方法有三个:

    // 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例
    File(String pathname) 
    // 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
    File(String parent, String child) 
    // 通过给定的父抽象路径名和子路径名字符串创建一个新的File实例
    File(File parent, String child);
    

    如:

    // 创建一个文件夹
    new File(Environment.getExternalStorageDirectory(),"test");
    // 创建一个文件
    new File(Environment.getExternalStorageDirectory(),"test.apk");
    

    获取SD卡的可用空间并显示在界面上

    public void getSize(){ 
           myTextView.setText(""); 
           myBar.setProgress(0); 
          //判断是否有插入存储卡 
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
             File path =Environment.getExternalStorageDirectory(); 
             //取得sdcard文件路径 
             StatFs statfs=new StatFs(path.getPath()); 
             //获取block的SIZE 
    long blocSize=statfs.getBlockSize(); 
             //获取BLOCK数量 
    long totalBlocks=statfs.getBlockCount(); 
             //己使用的Block的数量 
    long availaBlock=statfs.getAvailableBlocks(); 
             String[] total=filesize(totalBlocks*blocSize); 
             String[] availale=filesize(availaBlock*blocSize); 
             //设置进度条的最大值 
    int maxValue=Integer.parseInt(availale[0]);
             myBar.getMax()/Integer.parseInt(total[0]);
             myBar.setProgress(maxValue); 
             String Text="总共:"+total[0]+total[1]+"/n" 
    +"可用:"+availale[0]+availale[1]; 
             myTextView.setText(Text); 
           }else 
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)){
             Toast.makeText(getStorageActivity.this, "没有sdCard",1000).show();
           } 
    } 
    //返回数组,下标1代表大小,下标2代表单位 KB/MB 
    String[] filesize(long size){ 
           String str=""; 
          if(size>=1024){ 
             str="KB"; 
             size/=1024; 
             if(size>=1024){ 
                str="MB"; 
                size/=1024; 
             } 
           } 
           DecimalFormat formatter=new DecimalFormat(); 
           formatter.setGroupingSize(3); 
           String result[] =new String[2]; 
           result[0]=formatter.format(size); 
           result[1]=str; 
          return result; 
    } 
    
    展开全文
  • 后者包含实用程序脚本(例如,编译和刷新),一个手动文件说明如何选择哪个版本,您的android智能手机上编译并安装修改后的操作系统,还有一个文件,显示该版本的纯Android代码与我们的修改之间的所有差异。...
  • PS:不知道在哪个文件夹可以选择路径让它自动搜索并安装。 (驱动安装成功后找到“电脑设备管理器”并点击“通用串行总线控制器”会看到 “NVDIA USB Boot-recovery driver for Mobile devices”) (如遇到...
  • kodi-18.4-Leia-x64.exe

    2019-09-03 23:11:26
    接口 从插件内部排序时修复丢失的文本 离开窗口时清除/保存焦点历史,焦点文件夹项目上 图片幻灯片修复(Estuary) 订阅控制器安装事件(游戏) ...可用鼠标将文件拖到“应用文件夹即完成安装。
  • 分辨率修改工具

    2012-01-25 12:41:58
    同理,每个格的数值对应键盘的每个键,需要屏幕哪个位置增加哪个键就修改哪个就改哪的个值(对应原键值的数值修改,1-12分别代表手机键盘的#、*、0-9、13-14代表左右软键),比如我们要屏幕中间增加一个”#“键...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合...文件夹基本操作、文件流操作、加密、解密及解压缩文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合...文件夹基本操作、文件流操作、加密、解密及解压缩文件、C#与Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用C#进行程序开发各个方面的知识和技巧,主要包括C#编程基础、Windows窗体、控件应用、文件操作、C#与Office高效开发、图形...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...
  • 本书是第I卷,以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用ASP.NET进行程序开发的各种知识和技巧。主要包括ASP.NET技术基础、VS 2008环境搭建,还详细讲解了C#语言设计入门,然后从...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
  • 最近,有个别网友找我,的架设网狐荣耀版游戏时,服务器端开了房卡房间,但是在手机端没有房间显示,更不用谈进入房间了。经查,程序没有问题,相同的源码,相同的环境配置,就是不出现房卡房间,最后我也是无语了。...
  • Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...
  • Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看 Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码...
  •  Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

手机应用在哪个文件夹