iphone app app的生命周期期 多久 停止

iOS下app的生命周期 - IOS技巧 - 大学IT网
当前位置: >
> iOS下app的生命周期
关键词:&&阅读(6737) 赞(19)
[摘要]本文是对iOS下app的生命周期的讲解,对学习IOS苹果软件开发有所帮助,与大家分享。
对于iOS应用程序,关键的是要知道你的应用程序是否正在前台或后台运行。由于系统资源在iOS设备上较为有限,一个应用程序必须在后台与前台有不同的行为。操作系统也会限制你的应用程序在后台的运行,以提高电池寿命,并提高用户与前台应用程序的体验。当应用程序在前台和后台之间切换时,操作系统将会通知您的应用程序。你可以通过这些通知来修改你的应用程序的行为。
当你的应用程序在前台活动时,系统会发送触摸事件给它进行处理。在UIKit的基础设施做了大部分的事件传递给你的自定义对象工作。所有您需要做的是覆盖在相应的对象的方法来处理这些事件。对于控件,UIKit会通过处理你的触摸事件,或者其他一些有趣的事情发生时调用您的自定义代码,比如当文本字段中的值更改。
1:应用程序的状态
Not running未运行:程序没启动。
Inactive未激活:程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态。
Active激活:程序在前台运行而且接收到了事件。这也是前台的一个正常的模式。
Backgroud后台:程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态。
Suspended挂起:程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。
2:各个程序运行状态时代理的回调
①告诉代理进程启动但还没进入状态保存 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
NSLog(@"①告诉代理进程启动但还没进入状态保存");
return YES;
②告诉代理启动基本完成程序准备开始运行 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
NSLog(@"②告诉代理启动基本完成程序准备开始运行");
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
③当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话 - (void)applicationWillResignActive:(UIApplication *)application
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
NSLog(@"③当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话");
④当应用程序进入活动状态执行 - (void)applicationDidBecomeActive:(UIApplication *)application
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
NSLog(@"④当应用程序进入活动状态执行");
⑤当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可 - (void)applicationDidEnterBackground:(UIApplication *)application
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
NSLog(@"⑤当程序被推送到后台的时候调用");
[application beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"begin Background Task With Expiration Handler");
⑥当程序从后台将要重新回到前台时候调用 - (void)applicationWillEnterForeground:(UIApplication *)application
// Called as part of the transition from the background t here you can undo many of the changes made on entering the background.
NSLog(@"⑥当程序从后台将要重新回到前台时候调用");
⑦当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值 - (void)applicationWillTerminate:(UIApplication *)application
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
NSLog(@"⑦当程序将要退出是被调用");
⑧当程序载入后执行 - (void)applicationDidFinishLaunching:(UIApplication *)application
NSLog(@"⑧当程序载入后执行");
程序启动时:
15:55:14.706 LifeCycle[5845:60b] ①告诉代理进程启动但还没进入状态保存
15:55:14.708 LifeCycle[5845:60b] ②告诉代理启动基本完成程序准备开始运行
15:55:14.709 LifeCycle[5845:60b] ④当应用程序进入活动状态执行
按下Home键返回主界面:
15:56:11.756 LifeCycle[5845:60b] ③当应用程序将要入非活动状态执行
15:56:11.814 LifeCycle[5845:60b] ⑤当程序被推送到后台的时候调用
再次打开程序:
15:57:19.200 LifeCycle[5845:60b] ⑥当程序从后台将要重新回到前台时候调用
15:57:19.201 LifeCycle[5845:60b] ④当应用程序进入活动状态执行
3:加载应用程序进入前台
4:加载应用程序进入后台
5:基于警告式响应中断
当出现这种中断时,我们需要在- (void)applicationWillResignActive:(UIApplication *)application方法中进行如下操作:
①停止timer 和其他周期性的任务
②停止任何正在运行的请求
③暂停视频的播放
④如果是游戏那就暂停它
⑤减少OpenGL ES的帧率
⑥挂起任何分发的队列和不重要的操作队列(你可以继续处理网络请求或其他时间敏感的后台任务)
当程序回到active状态,我们需要在- (void)applicationDidBecomeActive:(UIApplication *)application方法中重新开始上述任务。不过游戏要回到暂停状态,不能自动开始。
6:进入后台运行
当应用程序进入后台时,我们应该做些什么?
保存用户数据或状态信息,所有没写到磁盘的文件或信息,在进入后台时,最后都写到磁盘去,因为程序可能在后台被杀死。
释放尽可能释放的内存。
- (void)applicationDidEnterBackground:(UIApplication *)application方法有大概5秒的时间让你完成这些任务。如果超过时间还有未完成的任务,你的程序就会被终止而且从内存中清除。
如果还需要长时间的运行任务,可以在该方法中调用 [application beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"begin Background Task With Expiration Handler");
应用程序在后台时的内存使用:请求后台运行时间和启动线程来运行长时间运行的任务。
在后台时,每个应用程序都应该释放最大的内存。系统努力的保持更多的应用程序在后台同时 运行。不过当内存不足时,会终止一些挂起的程序来回收内存,那些内存最大的程序首先被终止。
事实上,应用程序应该的对象如果不再使用了,那就应该尽快的去掉强引用,这样编译器可以回收这些内存。如果你想缓存一些对象提升程序的性能,你可以在进入后台时,把这些对象去掉强引用。
下面这样的对象应该尽快的去掉强引用:
①图片对象
②你可以重新加载的 大的视频或数据文件
③任何没用而且可以轻易创建的对象
在后台时,为了减少程序占用的内存,系统会自动在回收一些系统帮助你开辟的内存。比如:
①系统回收Core Animation的后备存储。
②去掉任何系统引用的缓存图片
③去掉系统管理数据缓存强引用
7:返回前台运行
在暂停状态的应用程序必须准备处理任何排队的通知时,它返回到前台或后台执行状态。暂停的应用程序不执行任何代码,因此不能处理与方向的变化,时间的变化,偏好的变化,以及许多其他会影响应用程序的外观或状态的通知。为了确保这些更改不会丢失,系统排队许多相关的通知,并把它们传递给应用程序,只要它开始再次执行代码(无论是在前景或背景)。为了防止由偏快转为超载与它恢复时通知您的应用程序,该系统凝聚事件,并提供一个单一的通知(每个相关类型),反映了净变化,因为你的应用程序被暂停。
8:程序终止
程序只要符合以下情况之一,只要进入后台或挂起状态就会终止:
①iOS4.0以前的系统
②app是基于iOS4.0之前系统开发的。
③设备不支持多任务
④在Info.plist文件中,程序包含了 UIApplicationExitsOnSuspend 键。
app如果终止了,系统会调用app的代理的方法 - (void)applicationWillTerminate:(UIApplication *)application,这样可以让你可以做一些清理工作。你可以保存一些数据或app的状态。这个方法也有5秒钟的限制。超时后方法会返回程序从内存中清除。
注意:用户可以手工关闭应用程序。
9:The Main Run Loop 主运行循环
Main Run Loop负责处理用户相关的事件。UIApplication对象在程序启动时启动main run Loop,它处理事件和更新视图的界面。看Main Run Loop就知道,它是运行在程序的主线程上的。这样保证了接收到用户相关操作的事件是按顺序处理的。
用户操作设备,相关的操作事件被系统生成并通过UIKit的指定端口分发。事件在内部排成队列,一个个的分发到Main run loop 去做处理。UIApplication对象是第一个接收到时间的对象,它决定事件如何被处理。触摸事件分发到主窗口,窗口再分发到对应出发触摸事件的View。其他的事件通过其他途径分发给其他对象变量做处理。
大部分的事件可以在你的应用里分发,类似于触摸事件,远程操控事件(线控耳机等)都是由app的 responder objects 对象处理的。Responder objects 在你的app里到处都是,比如:UIApplication 对象,view对象,view controller 对象,都是resopnder objects。大部分事件的目标都指定了resopnder object,不过事件也可以传递给其他对象。比如,如果view对象不处理事件,可以传给父类view或者view controller。
相关IOS技巧推荐151949人阅读
iOS开发进阶(18)
& & &iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。//开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Not running &未运行 &程序没启动Inactive & & & & &未激活 & & & &程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态Active & & & & & & 激活 & & & & & 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式Backgroud & & 后台 & & & & & 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态Suspended & &挂起 & & & & & 程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。下图是程序状态变化图:各个程序运行状态时代理的回调:- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions& & & 告诉代理进程启动但还没进入状态保存- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions& & &告诉代理启动基本完成程序准备开始运行- (void)applicationWillResignActive:(UIApplication *)application& & 当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了- (void)applicationDidBecomeActive:(UIApplication *)application&& & &当应用程序入活动状态执行,这个刚好跟上面那个方法相反- (void)applicationDidEnterBackground:(UIApplication *)application& & 当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可- (void)applicationWillEnterForeground:(UIApplication *)application 当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。- (void)applicationWillTerminate:(UIApplication *)application 当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。- (void)applicationDidFinishLaunching:(UIApplication*)application 当程序载入后执行在上面8个方法对应的方法中键入NSLog打印。现在启动程序看看执行的顺序:启动程序lifeCycle[] willFinishLaunchingWithOptionslifeCycle[] didFinishLaunchingWithOptionslifeCycle[] applicationDidBecomeActive按下home键lifeCycle[] applicationWillResignActivelifeCycle[] applicationDidEnterBackground双击home键,再打开程序lifeCycle[] applicationWillEnterForegroundlifeCycle[] applicationDidBecomeActive2、应用程序的生命周期2.1、加载应用程序进入前台2.2、加载应用程序进入后台2.3、关于main函数main函数是程序启动的入口,在iOS app中,main函数的功能被最小化,它的主要工作都交给了UIKit framework#import &UIKit/UIKit.h&
int main(int argc, char *argv[])
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));
UIApplicationMain函数有四个参数,你不需要改变这些参数值,不过我们也需要理解这些参数和程序是如何开始的argc 和argv参数包含了系统带过来的启动时间。 &第三个参数确定了主要应用程序类的名称,这个参数指定为nil,这样UIKit就会使用默认的程序类UIApplication。第四个参数是程序自定义的代理类名,这个类负责系统和代码之间的交互。它一般在Xcode新建项目时会自动生成。另外 UIApplicationMain函数加载了程序主界面的文件。虽然这个函数加载了界面文件,但是没有放到应用程序的windows上,你需要在Delegate的&application:willFinishLaunchingWithOptions方法中加载它。一个应用程序可以有一个主的storyboard文件或者有一个主的nib文件,但不能同时有两个存在。如果程序在启动时没有自动加载主要的故事版或nib文件,你可以在application:willFinishLaunchingWithOptions方法里准备windows的展示。3、响应中断3.1 当一个基于警告式的中断发生时,比如有电话打进来了,这是程序会临时进入inactive状态,这用户可以选择如何处理这个中断,流程如下图:在iOS5,通知不会把程序变成为激活状态,通知会显示在状态栏上,如果你;拉下状态栏,程序会变成inactive,把状态栏放回去,程序变回active。按锁屏键也是另外一种程序的中断,当你按下锁屏键,系统屏蔽了所有触摸事件,把app放到了后台,这时app状态是 inactive,并进入后台。3.2 当有这些中断时,我们的app该怎么办呢?我们应该在方法中:停止timer 和其他周期性的任务停止任何正在运行的请求暂停视频的播放如果是游戏那就暂停它减少OpenGL ES的帧率挂起任何分发的队列和不重要的操作队列(你可以继续处理网络请求或其他时间敏感的后台任务)。当程序回到active状态 , &&&& 方法应该上面提到的任务重新开始,比如重新开始timer, 继续分发队列,提高OpenGL ES的帧率。不过游戏要回到暂停状态,不能自动开始。4、转到后台运行4.1 如图所示:PS:只有在IOS4以上系统或者支持多任务的设备才能后台运行。不然会直接结束状态。4.2 当应用程序进入后台时,我们应该做写什么呢?保存用户数据或状态信息,所有没写到磁盘的文件或信息,在进入后台时,最后都写到磁盘去,因为程序可能在后台被杀死,释放尽可能释放的内存applicationDidEnterBackgound: 方法有大概5秒的时间让你完成这些任务。如果超过时间还有未完成的任务,你的程序就会被终止而且从内存中清除。如果还需要长时间的运行任务,可以调用 &beginBackgroundTaskWithExpirationHandler& & & &方法去请求后台运行时间和启动线程来运行长时间运行的任务。4.3 应用程序在后台时的内存使用在后台时,每个应用程序都应该释放最大的内存。系统努力的保持更多的应用程序在后台同时 运行。不过当内存不足时,会终止一些挂起的程序来回收内存,那些内存最大的程序首先被终止。事实上,应用程序应该的对象如果不再使用了,那就应该尽快的去掉强引用,这样编译器可以回收这些内存。如果你想缓存一些对象提升程序的性能,你可以在进入后台时,把这些对象去掉强引用。下面这样的对象应该尽快的去掉强引用:图片对象你可以重新加载的 大的视频或数据文件任何没用而且可以轻易创建的对象在后台时,为了减少程序占用的内存,系统会自动在回收一些系统帮助你开辟的内存。比如:系统回收Core Animation的后备存储。去掉任何系统引用的缓存图片去掉系统管理数据缓存强引用5 、返回前台运行流程如图所示:当app处于挂起状态时,它是不能执行任何代码的。因此它不能处理在挂起期间发过来的通知,比如方向改变,时间改变,设置的改变还有其他影响程序展现的或状态的通知。在程序返回后台或前台是,程序都要正确的处理这些通知。6、程序的终止程序只要符合以下情况之一,只要进入后台或挂起状态就会终止:iOS4.0以前的系统app是基于iOS4.0之前系统开发的。设备不支持多任务在Info.plist文件中,程序包含了&UIApplicationExitsOnSuspend& 键。app如果终止了 &,系统会调用app的代理的方法&& &这样可以让你可以做一些清理工作。你可以保存一些数据或app的状态。这个方法也有5秒钟的限制。超时后方法会返回程序从内存中清除。注意:用户可以手工关闭应用程序。7、 The Main Run Loop &主运行循环Main Run Loop负责处理用户相关的事件。UIApplication对象在程序启动时启动main run Loop,它处理事件和更新视图的界面。看Main Run Loop就知道,它是运行在程序的主线程上的。这样保证了接收到用户相关操作的事件是按顺序处理的。Main Run Loop &处理事件的架构图:用户操作设备,相关的操作事件被系统生成并通过UIKit的指定端口分发。事件在内部排成队列,一个个的分发到Main run loop 去做处理。UIApplication对象是第一个接收到时间的对象,它决定事件如何被处理。触摸事件分发到主窗口,窗口再分发到对应出发触摸事件的View。其他的事件通过其他途径分发给其他对象变量做处理。大部分的事件可以在你的应用里分发,类似于触摸事件,远程操控事件(线控耳机等)都是由app的&&对象处理的。Responder objects 在你的app里到处都是,比如:UIApplication 对象。view对象,view controller 对象,都是resopnder objects。大部分事件的目标都指定了resopnder object,不过事件也可以传递给其他对象。比如,如果view对象不处理事件,可以传给父类view或者view controller。参考:/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP-CH4-SW20容芳志 ()本文遵循“”创作公用协议
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4718136次
积分:21784
积分:21784
排名:第233名
原创:125篇
转载:15篇
评论:1295条
阅读:86883
文章:15篇
阅读:1057027
文章:17篇
阅读:517148
文章:31篇
阅读:1962875
(5)(1)(3)(2)(1)(2)(1)(1)(2)(2)(3)(5)(1)(7)(2)(5)(10)(4)(7)(4)(13)(27)(5)(1)(1)(1)(1)(1)(3)(1)(7)(1)(3)(4)(4)淘汰率居高不下 App生命周期短留存率低
最近,一份来自艾媒咨询的调查数据中显示:“App的生命周期平均只有十个月,85%的用户会在1个月内将其下载的应用程序从手机中删除,而到了5个月后,这些应用程序的留存率仅有5%。”也就是说,部分用户每5个月就会淘汰一批手机中安装的应用。
我国的移动智能终端用户规模全球第一,截止至2014年底,约有10.6亿用户,平均每位用户会给自己的智能设备安装34款应用,但是这些应用在手机中的存活时间可能仅有1个月。最近,一份来自艾媒咨询的调查数据中显示:“App的生命周期平均只有十个月,85%的用户会在1个月内将其下载的应用程序从手机中删除,而到了5个月后,这些应用程序的留存率仅有5%。”也就是说,部分用户每5个月就会淘汰一批手机中安装的应用。在所有的应用当中,最先被删掉的是游戏类和阅读类App,用户粘性最佳的则是即时通讯与社交类App。这很好理解,如果一款游戏操作不顺畅,画面质量不佳,用户很快就会在市场中找到它的替代品,而社交App则不同,比如微信,由于用户基数大,身边的朋友几乎都用它联络,很难随意更换。但是和用户粘性成反比的则是死亡率,其中社交App情况最为突出,它的死亡率高达35%,甚至有App都没有经历上线的过程就被放弃,而更多的则是孤独的占据市场中一个小小的位置,无人问津。神经猫火速蹿红
足记、神经猫、Flappy Bird等等火爆一时,但却又很快消失在应用的海洋当中,除了同类应用太多之外,用户们喜新厌旧的心理也是造成该现象的原因之一。直到现在仍有大量的开发者梦想着依靠一款软件爆红网络,然而要适应市场的快节奏并非那么简单,积累用户没有捷径可走,服务于用户才是王道。
本文来源:手机中国
关键词阅读:
不做嘴炮 只管约到
跟贴热词:
文明上网,登录发贴
网友评论仅供其表达个人看法,并不表明网易立场。
热门产品:   
:        
:         
热门影院:
用微信扫描二维码分享至好友和朋友圈App“看上去很美”淘汰率高 生命周期仅10个月-中新网
App“看上去很美”淘汰率高 生命周期仅10个月
  2014年,中国智能手机用户首次超过5亿人,成为拥有智能手机用户最多的国家。疯狂生长的移动应用(App)正占据新的风口。据了解,目前我国主要应用商店的应用规模已累计超过400万个。
  但如火如荼的App市场,或许只是“看上去很美”。
  易观智库首席分析师李智透露,“有些App还没研发出来就胎死腹中,有些出生即是死亡,更多的App虽然仍在应用市场上,但早已无人问津。”
  “App的生命周期平均只有10个月。”艾媒咨询分析师罗远妹透露。“85%的用户会在1个月内将其下载的应用程序从手机中删除,而到了5个月后,这些应用程序的留存率仅有5%。”
  而根据艾媒咨询2014年第三季度报告,手机网民使用手机应用商店频率排名依次为:即时通讯与社交、新闻资讯、音乐视频、网络购物、手机游戏与图书阅读,分别占比63%、56%、49%、46%、38%与34%。
  由于手机APP生命周期与用户黏性相关,可以看出即时通讯和社交App生命周期较长,其次是新闻资讯、音乐视频、网络购物、手机游戏与图书阅读。
  但从“死亡率”上讲,罗远妹认为社交类的App竞争最为残酷,“在100家死亡的App里,社交类占了35%,是死亡率最高的类别。”
  因为进入门槛低,草根创业者们更是对App市场趋之若鹜。2013年至今,现象级App不断地涌现,魔漫相机、鬼魂探测器、脸萌和围住神经猫等红极一时。最近图片社交足记爆红了,二十多家投资机构排队上门欲谈投资合作。它们的成功是草根创业者们最好的鸡汤。
  低门槛带动了App创业的火爆,同时也抬高了整个市场的“死亡率”。
  App创业的门槛到底有多低?据了解,几百万数量级的App市场,几乎30%的App靠自助生成软件生成。
  小蒋是广州某名牌大学的研究生,他有一支5个人的学生团队,在前几个App创业项目夭折之后,小蒋和他的团队又计划着推出一款电影评论类的App。“用户在看完电影后能及时吐槽,算是兴趣社交吧,从去年5月到现在,技术人员走走换换,换换走走,我们进展很慢,还在开发阶段。”小蒋说。
  像这样的创业团队还有很多,他们是App市场上一朵朵微不足道的小浪花,推动整个大浪潮,但也带来了大量泡沫。
  “死亡率”如此之高,营收难也是App开发者们绕不过的坎。
  国内App盈利主要依赖移动广告。罗远妹介绍,收费模式大致分两种:一种是向用户收费,包括收费下载等;另一种是广告模式,即“点击付费”,例如用户每点击一次商家嵌入到APP里的广告,商家要付给APP开发商2元-4元,如果一个用户成功转换为商家的客户,APP开发商能收到7元。但由于中国用户喜欢使用免费软件,两种模式走得都较为艰难。
  李智也认为国内应用平台“二八效应”严重,“20%的应用拿走了80%的收入,绝大部分应用是没有这个盈利能力的。”
  从目前的App市场格局来看,赢家总是通吃,绝大多数玩家只能垫底。
  易观智库从去年8月份开始推出App Top 200的排行榜,从最近几个月的数据来看,前200的应用基本上没太多变动,只是排名上有所浮动。
  2014年,5000万量级的超级App们继续攻城略地,BAT系APP几乎包揽了移动应用排行榜前十。微信、QQ、淘宝和百度牢牢霸占榜单前四,每月活跃度均超过5亿。
  另一部分超级App则通过在其所在行业与垂直领域的深耕而获取海量用户,进而跻身一线App行列,其中包括陌陌、墨迹天气、美柚、美图、今日头条、唱吧、正点闹钟等。
  与BAT巨头们过招,“垂直领域的老大老二才有机会。”李智如是说。(李曼宁)
【编辑:查云帆】
>相关新闻:
>社会新闻精选:
直隶巴人的原贴:我国实施高温补贴政策已有年头了,但是多地标准已数年未涨,高温津贴落实遭遇尴尬。
66833 34708 30649 18963 18348 16939 12753 12482 12188 12157
 |  |  |  |  |  |  | 
本网站所刊载信息,不代表中新社和中新网观点。 刊用本网站稿件,务经书面授权。
未经授权禁止转载、摘编、复制及建立镜像,违者将依法追究法律责任。
[] [] [京公网安备:-1] [] 总机:86-10-
Copyright &1999-. All Rights Reserved

我要回帖

更多关于 android app生命周期 的文章

 

随机推荐