我已经在我的一个Android应用程序中对Application类进行了分类,我在onCreate()方法中进行了一些应用程序级初始化工作。
从应用程序日志中我可以看到在onCreate方法中完成的实际初始化工作只需要大约200毫秒。
但是,在调用Application.onCreate()方法之前,单击启动器中的应用程序图标需要大约10到15秒。我设备上的其他应用程序启动速度足够快,因此我不怀疑内存限制。
有什么建议吗?
public class MyApplication extends Application
{
private static String TAG = "MyApplication";
// Class member variables
@Override
public void onCreate()
{
Log.d(TAG, "Its taking 10-15 seconds to reach here");
super.onCreate();
Log.d(TAG, "Perform application specific Initialize work");
.
.
// Init AsyncTasks
.
.
Log.d(TAG, "Application specific Initialize completed");
}
}
更新
我在应用程序级别使用Facebook,Google Plus,LinkedIn等许多SDK来访问各种类和服务。尽管使用AsyncTasks执行初始化,但我已在Application类中为相应的SDK对象定义了成员变量。可能在SDK中的某些构造函数中执行了一些长时间的工作。无论如何,我要彻底优化应用程序,包括体系结构和依赖数量。
此外,更新了所有库以处理任何错误。
我完成后会发布结果。