Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为移动设备提供图像服务的最佳方法_Android_Ios_Image_Static Files - Fatal编程技术网

Android 为移动设备提供图像服务的最佳方法

Android 为移动设备提供图像服务的最佳方法,android,ios,image,static-files,Android,Ios,Image,Static Files,我目前正在开发一个支持应用程序用户配置文件的后端系统。该系统集成了Android和iOS应用程序。在移动应用程序中,有一个配置文件页面,用于显示用户配置文件图像、用于更改图像的按钮和其他详细信息 图像必须是JPEG或PNG格式,并且最大大小限制为2MB 目前,我的后端通过以下方式上载和提供图像: 当图像作为multipart/form data发送时,图像的元将被提取、插入或更新(如果已经存在)到SQL数据库中,并且图像保存在资产目录中 当在httpget中请求图像时,它将作为Base64编码的

我目前正在开发一个支持应用程序用户配置文件的后端系统。该系统集成了
Android
iOS
应用程序。在移动应用程序中,有一个配置文件页面,用于显示用户配置文件图像、用于更改图像的按钮和其他详细信息

图像必须是
JPEG
PNG
格式,并且最大大小限制为
2MB

目前,我的后端通过以下方式上载和提供图像:

  • 当图像作为
    multipart/form data
    发送时,图像的元将被提取、插入或更新(如果已经存在)到
    SQL数据库中,并且图像保存在资产目录中
  • 当在
    httpget
    中请求图像时,它将作为Base64编码的
    数据uri发回;在浏览器中,我可以将其显示为
    HTML
    img tag src属性的一部分
  • 现在,移动应用程序开发人员要求我更改(2)中所述的服务(下载)过程。具体来说,他们要求响应服务器中的静态图像链接,而不是编码的
    Uri

    现在,我已经阅读了一些关于使用
    数据uri
    的好观点,以及它如何使图像传递更具可移植性(我可以支持
    JPEG
    PNG
    ,无需任何修改即可支持浏览器上的不同格式);另一方面,我还阅读了
    Base64
    编码图像如何比原始二值图像更大,响应有效载荷如何变大,这意味着更多的飞行处理,并且在移动网络上速度会变慢

    现在,我不确定哪种方法最合适。移动应用程序只需在单击配置文件时显示图像。他们可以将图像作为应用程序数据保存在移动文件系统中,也可以每次提取图像并显示它

    如果有人能帮助回答以下问题,那就更好了:

  • 我应该继续以
    数据uri
    的形式提供图像,还是更改后端以提供指向静态文件的链接
  • 基于我的用例,这两种方法在性能上是否存在差异
  • 对于移动应用程序来说,与
    数据uri
    相比,使用指向静态文件的链接是否更有利(我的意思是更容易在代码中实现和维护)
  • 我应该继续将图像作为数据uri提供服务,还是将后端更改为提供指向静态文件的链接

    我会继续将图像作为数据uri提供。这意味着您可能要从数据库中的blob中提取数据,然后将其发送出去。这允许在数据库中更新数据,而不必担心在服务器端更新静态图像

    基于我的用例,这两种方法在性能上是否存在差异

    静态图像可能更快,因为正如您所说,base64图像可能更大。但是,也可能不是。您可能应该将图像限制为最大大小,和/或在上载图像时将其调整为最大大小。我不会太担心,我已经编写了几个应用程序,可以在几秒钟内读取数百个base64图像,并且没有明显的延迟

    对于一个移动应用程序,与数据uri相比,使用指向静态文件的链接是否更有利(我的意思是更容易在代码中实现和维护)

    使用数据uri可能更容易,因为移动应用程序需要将其转换为与ImageView或任何他们需要显示的文件格式


    如果图像仅由用户在其设备上使用,您真的需要让他们上传吗?(如果您希望在他们拥有的每台设备上都显示相同的配置文件图像,您会这样做)或者,它可以存储在本地的应用程序数据存储或本地SQLite数据库中吗?

    这是一个明确的答案。非常感谢您花时间解释。当移动开发者告诉我切换到静态文件时,我有点沮丧。至于你答案的最后一部分,这些图像不仅被移动应用程序使用(桌面环境正在建设中),因此,无限期的本地存储似乎不太可能。再次感谢。