我会定期在Android电子市场上报告不可复制的例外情况.堆栈跟踪始终如下所示:
at ...
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4306)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
ZygoteInit $ MethodAndArgsCaller似乎是直接调用app方法而不是代码.这是怎么回事?
最后复制以下其中一个例外:触摸应用程序图标,触摸文本字段以显示对话框,按主页,杀死应用程序pid,触摸应用程序图标,然后按返回.添加了在onSaveInstanceState和onRestoreInstanceState中保存和恢复应用程序实例变量以修复问题.
仍想在某处找到ZygoteInit调用的描述.
Ali*_*ium 35
Lars Vogel在本文的 Android启动过程中描述了Zygote过程的作用:
在Android系统启动期间,Linux内核首先调用进程"init".init读取文件"/init.rc"和"init.device.rc"."init.device.rc"是特定于设备的,在虚拟设备上,该文件名为"init.goldfish.rc".
init.rc通过程序"/ system/bin/app_process"启动进程"Zygote".Zygote加载核心Java类并执行它们的初始处理.Android应用程序可以重用这些类,因此这一步骤可以让它们更快地启动.完成Zygote的初始工作后,进程将侦听套接字并等待请求.
| 归档时间: |
|
| 查看次数: |
32579 次 |
| 最近记录: |