为用户节省流量,app第一次安装或升级启动时,本地进行一些必要基础数据的存储,避免多余的下载

原创 2015年07月06日 16:56:56

有时,我们app第一次启动,或者每次升级完成后的第一次启动,我们都需要进行一些本地数据的更新。为了达到数据的更新,大多数开发者,会直接强制性从服务器进行数据读取,然后存储到本地。但,这样强制请求,如果数据过大。会导致两点不好的影响:1.第一次启动时,会用掉用户的很多流量。2.第一次启动时,性能的不友好。

为了避免此现象,我们可以在我们的代码中,事先存储一些用户第一次启动时,必须要用到的基础数据。这样用户第一次启动时,就不用再次请求数据。对流量以及性能都有很好的提升。

上代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

[YCTools copyAllDefaultConfigFile];

}

+ (void)copyAllDefaultConfigFile
{
    NSString *configPlistPath = [kPATH_OF_CACHES stringByAppendingString:kConfigPlistFile];

// 判断本地是否存在此文件
    if (![YCTools isExistsFileWithPath:configPlistPath]) {
        NSString*  configString = [[NSBundle mainBundle] pathForResource:@"config_yidao" ofType:@"plist"];
                
        NSError* error = nil;
        [[NSFileManager defaultManager] copyItemAtPath:configString toPath:configPlistPath error:&error];
  
        [YCTools addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:configPlistPath]];
    }
}

+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    //assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
    DLog(@"%@",URL);
    NSError *error = nil;
    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
                                  forKey: NSURLIsExcludedFromBackupKey error: &error];
    if(!success){
        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
    }
    return success;
}

顺序表清除重复元素

#include #include #include #define maxsize 1000 int i; typedef int element; typedef struct {   el...
  • jinzk123
  • jinzk123
  • 2016年07月26日 19:09
  • 1251

iOS中判断是否首次下载app

//判断是否首次下载 在程序启动的时候app delegate 中先判断 - (BOOL)application:(UIApplication *)application didFinishLau...
  • u011146511
  • u011146511
  • 2016年12月21日 10:24
  • 946

Android - 保存用户首次使用状态(SharedPreferences)

保存用户首次使用状态(SharedPreferences)本文地址: http://blog.csdn.net/caroline_wendy用户首次登陆时, 可能需要用户教育, 讲解界面操作,但是不应...
  • u012515223
  • u012515223
  • 2014年11月15日 08:02
  • 2544

app第一次启动显示引导页

一般的是在sp文件中以一个标志来区分,但是这样无法做到每个新版本都会是第一次启动,因为更新app是不会删除sp文件的。 那么区分每个版本就可以通过versioncode来区分,配合sp文件进行查分对...
  • q9977144
  • q9977144
  • 2015年11月06日 13:45
  • 599

swift判断app第一次启动

//appdelegate中写如下代码 func application(application: UIApplication, didFinishLaun...
  • vistadk
  • vistadk
  • 2016年10月01日 20:23
  • 1065

浅析应用助手省流量升级原理

背景 我们知道,现在市面上有很多应用助手,比如豌豆荚,360手机助手,应用宝等,这些应用基本上都具有省流量下载功能。 由于现在的安卓应用多而大,并且更新频率快,即使现在随处都有wifi覆盖,但总有时...
  • sgzy001
  • sgzy001
  • 2015年04月04日 08:52
  • 1596

Oracle DBA学习基础篇(一) Oracle体系结构 学习笔记

这里是我通过Oracle DBA实战这本书学习的 Oracle体系结构,大部分是我对书中的内容做的总结,还有遇到不理解的知识点,通过查询资料做的整合。通过这篇博客希望可以让你对Oracle的一些内部原...
  • qq_35663902
  • qq_35663902
  • 2017年11月24日 11:37
  • 63

Android开发过程中将APP的数据写入本地存储的方法

在Android开发过程中,我们经常会遇到本地数据存储的过程。因此,在这种情况下,我们需要通过流的形式,将数据写入到存储中。具体如下:package com.example.ble; import ...
  • github_36601823
  • github_36601823
  • 2017年03月02日 15:48
  • 820

APP开发实战120-APP网络流量优化

30.2网络流量优化 1 目前用户基本都是通过网络下载APP和更新APP版本,减少APP大小,就可以有效减少用户消耗的网络流量。 2 目前友盟已经支持增量升级APP的功能,这样即使APP有10M大小,...
  • xjbclz
  • xjbclz
  • 2016年07月25日 22:15
  • 1017

android开发 判断app是否是第一次安装

一般用SharedPreferences来保存app的一些基本配置,是否是第一次安装也可以是用SharedPreferences来保存,这是封装的SharedPreferencesUtil工具类: p...
  • pkandroid
  • pkandroid
  • 2016年08月29日 14:18
  • 3462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为用户节省流量,app第一次安装或升级启动时,本地进行一些必要基础数据的存储,避免多余的下载
举报原因:
原因补充:

(最多只允许输入30个字)