Android应用程序的入口点是什么?ActivityThread?onCreate

Android应用程序的入口点是什么?ActivityThread?onCreate,第1张

以前一直都说Activity的人口是onCreate方法。

其实android上一个应用的入口,应该是ActivityThread。

和普通的java类一样,入口是一个main方法。

public static void main(String[] args) {

SamplingProfilerIntegration.start()

// CloseGuard defaults to true and can be quite spammy. We

// disable it here, but selectively enable it later (via

// StrictMode) on debug builds, but using DropBox, not logs.

CloseGuard.setEnabled(false)

Environment.initForCurrentUser()

// Set the reporter for event logging in libcore

EventLogger.setReporter(new EventLoggingReporter())

Security.addProvider(new AndroidKeyStoreProvider())

Process.setArgV0("<pre-initialized>")

Looper.prepareMainLooper()

ActivityThread thread = new ActivityThread()

thread.attach(false)

if (sMainThreadHandler == null) {

sMainThreadHandler = thread.getHandler()

}

AsyncTask.init()

if (false) {

Looper.myLooper().setMessageLogging(new

LogPrinter(Log.DEBUG, "ActivityThread"))

}

Looper.loop()

throw new RuntimeException("Main thread loop unexpectedly exited")

}

android应用程序,由一到多个Activity组成.每个Activity没有很紧密的联系,因为我们可以在自己的程序中调用其它Activity,特别是调用自己的代码之外生成的Activity,比如android提供的发短信或者打电话的Activity. Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phonenumber)

startActivity(call)

Intent sms = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:"+phonenumber)

startActivity(sms)

从这点上看,android应用程序实际上是由多个Activity按照一定的次序拼装起来的,只不过拼装的过程中,后台传递了一些数据,使得各个Activity之间能比较好的衔接起来.

扯了这么多,其实我的意思还是想说,android应用程序中,并没有像c++和java这样有main函数来作为应用程序的入口.android应用程序提供的是入口Activity,而非入口函数.

在eclipse中创建一个android应用程序的时候,默认会创建一个Activity.这个Activity实际上就是入口Activity了.从

哪里定义它是Activity呢?AndroidManifest.xml文件中定义了整个android应用所包含的Activity.默认生成的

Activity的定义为:

<activity android:name=".activity01" android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

action节点中的android.intent.action.MAIN表明它所在的Activity是整个应用程序的入口点.而category中

的android.intent.category.LAUNCHER意思是把这个Activityg归属到加载器类,即把这个Activity标注为自

动会加载和启动的Activity,这样程序启动时候就先加载这个Activity了.参考手册上是这么说的----"the LAUNCHER

category says that this entry point should be listed in the application

launcher."意思和我理解的有出入.不过意思都是说这个Activity要被应用程序加载.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8047799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存