android程序入口
㈠ 想问一下,安卓项目从哪开始运行的呀
从基础的来讲就是在项目的AndroidManifest.xml文件中可以找到程序的入口界面,在文件中有一个application标签,它的下一级有一个activity标签包含了
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
那么这个activity就是APP启动的时候进入的界面,进到界面中,要了解一下Activity的生命周期就能知道,界面刚进来就走了onCreate()方法,所以Android项目中开始运行的地方就是第一个Activity的onCreate()方法。
另外如果在设置了AndroidManifest的application标签中设置了android:name=".MyApplication",那么程序入就成了MyApplication的onCreate()方法,当然Application在onCreate方法之前还会执行其他的方法,感兴趣的话可以自己再查询一下资料。平常说的话就是这么两个入口,如果在设置了AndroidManifest的application,那么最先的入口还是这个Application的onCreate()方法。
㈡ android 没有main函数,怎么找到程序执行入口
android应用程序中,并没有像c++和java这样有main函数来作为应用程序的入口.android应用程序提供的是入口Activity(你打开一个应用,第一眼看到的),而非入口函数.
在AndroidManifest.xml中
给你要最先启动的acticity写上下面这些语句,表示这个activity就是入口
㈢ Android 应用的真正入口是哪里
入口就是在清单文件manifest.xml里<application>中排在第一的那个
㈣ 如何查看Android应用apk的包名和入口Activity名称
Android开发过程中我们有时需要使用第三方apk资源,而启动第三方apk在某些情况下需要指定相应的包名和启动的Activity名,这个时候就需要获取这两个名称,我们可以使用如下三种方法:
1、使用aapt //aapt是sdk自带的一个工具,在你安装的Eclipse路径下的sdk\build-tools\中,如我的是D:\Eclipse\androidTools\sdk\build-tools\android-4.4.2,如果你下载有apk反编译工具,也可以直接使用里面的aapt
以“GO备份.apk”为例,先进入cmd命令行窗口,然后运行:D: -> Eclipse\androidTools\sdk\build-tools\android-4.4.2
-> aapt mp badging C:\Users\Administrator\Desktop\GO备份.apk,即可获取到AndroidManifest.xml中我们需要的内容,如
package: name='com.jiubang.go.backup.ex'
launchable-activity: name='com.jiubang.go.backup.pro.StartupPageActivity'
2、查看AndroidManifest.xml
同样是查看AndroidManifest.xml,这里我们可以采用反编译方法来获取信息,同样是打开cmd命令行窗口,然后运行:E:
-> apk反编译工具\apktool\apktool -> apktool.bat d -f C:\Users\Administrator\Desktop\GO备份.apk GO备份,然后打开“GO备份”文件夹,打开droidManifest.xml文件,找到manifest节点的package属性值package="com.jiubang.go.backup.ex"语句即为包名,查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性即为入口activity名称,如<activity
android:name="com.jiubang.go.backup.pro.StartupPageActivity"。
3、使用uiautomatorviewer
可以直接在命令行输入uiautomatorviewer,打开获取屏幕截图工具,连接手机,打开所要获取包名的应用,然后获取其截图,根据截图查看package即可,uiautomatorviewer的使用这里就不做介绍了。使用这个需要注意的是,该app必须是有界面的,否则无法获取。
另外,
android.intent.action.MAIN 属性决定应用程序最先启动的Activity
android.intent.category.LAUNCHER属性决定应用程序是否显示在程序列表里
㈤ 在android程序中如何获得应用的package名称及程序入口activity
packinfo.get(i).activities[0]得到的是manifest文件中的第一个activity
㈥ android程序的入口点在哪里
同意楼上的观点,但也不一定是在Activity标签下的intent-filter里的,因为也可以一个因为程序也可以没有Activity的,比如说Service。只不过,在一般情况下,Activity还是有的,这样才构成很好的用户体验吧
㈦ Android应用程序入口点究竟是什么
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要被应用程序加载.
㈧ 在程序中动态的更改入口的activity,怎样实
android 程序的入口activity能更改和指定。
你打开android project的AndroidManifest.xm或者喜欢反编译的话打开apk里面的AndroidManifest.xml文件,一开始便是指定:
package="com.i3nu.sprofile" //package名、包名
android:versionCode="1" //版本码
android:versionName="1.0"> //版本名
<application android:icon="@drawable/icon" android:label="@string/app_name"> //指定项目程序的图标、名称
<activity android:name=".SProfileActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> //此处表示该Activity是主程序
<category android:name="android.intent.category.LAUNCHER" /> //此处表示该Activity是入口
</intent-filter>
</activity>
㈨ apk入口在哪里
android应用程序(apk)没有固定的入口点,系统会根据各个程序的manifest设定,在发生指定事件的时候调用程序的指定位置。
如果你说的入口点是传统上认为的main函数,那么在android应用程序里面,相对应的就是在manifest里面用intent-filter设定了会处理main action的那个activity。
(9)android程序入口扩展阅读:
APK(全称:Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。 一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),和清单文件(manifest file)。
APK 文件基于 ZIP 文件格式,它与JAR文件的构造方式相似,互联网媒体类型是:application/vnd.android.package-archive。
介绍
APK是Android application package的缩写,即Android安装包(apk)。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。[2]
apk文件和sis一样,把androidsdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,但不同于Windows mobile中的PE文件,程序的保密性和可靠性不是很高,通过dexmp命令可以反编译它,但这种架构符合发展规律,微软的WindowsGadgets(WPF)也采用了这种架构方式。在Android平台中,dalvikvm的执行文件被打包为apk格式,最终运行时加载器会先解压,然后获取编译后的androidmanifest.xml文件中的permission声明对安全访问的限制,要知道仍然存在很多安全限制,但将apk文件传到/system/app文件夹下会发现执行是不受限制的。也许我们平时安装都不会选用这个文件夹,但在androidrom中,系统的apk文件默认会放入这个文件夹,它们拥有root权限。
㈩ Android APP最终入口在哪学JAVA的时候有main class,Android有吗
android程序里面我们见不到main方法,但实际我想应该还是有,不过在android中,入口方法,其实就是第一个被显示的activity,而第一个显示的activity是在AndroidManifest.xml中配置的,代码如下
<activity
android:name=".activity.WelcomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>