我正在体验我对Android开发的第一次尝试。我花了一些时间来设置环境并加载当前项目。我正在审查这个项目,而且我缺乏识别基础知识的知识。
我实际上引用了自动生成的AndroidManifest.xml来确定哪个类启动了应用程序以及哪个类最初启动。我查看了各自包中的文件,我正在尝试确定哪些导入的库正在确定这个。
对于应用程序,我认为这很明显:
import android.app.Application;
以下是AndroidManifest.xml的片段:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nlrt.sanome"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--
TODO: I should look into this warning about allowing backup:
Should explicitly set android:allowBackup to true or false (it's true by default, and that can have some security
implications for the application's data)
-->
<application
android:theme="@style/sanome_theme"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="com.menus.SanoApplication" >
<!-- LOGIN -->
<activity
android:name="com.login.LoginActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
android:label="@string/title_activity_main_login" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- MENUS -->
<activity
android:name="com.nlrt.sanome.menus.MainMenuActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.nlrt.sanome.menus.SubMenuScreeningToolsActivity"
android:screenOrientation="portrait" />
既然这是我第一次看到这段代码,我实际上不得不引用AndroidManifest.xml来了解启动该应用程序的文件。这个文件是自动生成的,所以库让它意识到这是com.menu的应用程序入口点.SanoApplication是前面提到的android.app.Application库。它是否正确?如果不是为什么?
启动实际上是从另一个包中启动另一个文件,我在清单中也注意到了。是什么让这个(com.login.LoginActivity)被识别为启动文件?那是MAIN和LAUNCHER?
我正在审核这些文件,但我缺乏知道如何在没有自动生成文件的情况下连接这些文件。
非常感谢您提供的任何帮助。
我也在寻找有关简单的Android应用程序的优秀初学者教程的建议。没有详细介绍安装步骤的原因我完成了。也没有一个是helloworld - 也完成了。有没有人有更好的建议?另外一个引用Netbeans IDE的人将非常感激。
再次感谢您提供任何帮助。
编辑//解决方案
AndoridManifest.xml不是自动生成的。午餐盒提供的链接非常清楚地说明了这一点。我的印象是每次执行Build操作时都会创建此文件。
答案 0 :(得分:2)
看看以下几行:
<activity
android:name="com.login.LoginActivity" ...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您使用了intent-filter来告诉Android您的LoginActivity应该在应用程序启动时显示给用户:MAIN操作将LoginActivity指定为应用程序的入口点,LAUNCHER类别告诉android应该列出此入口点在Launcher的顶级应用程序列表中。
至于建议,我强烈建议The Busy Coder's Guide to Android Development。这是巨大的。
答案 1 :(得分:1)
这是对的吗?
不是我对“切入点”的定义。
如果不是为什么?
Application
实例不是“入口点”。它只是作为你的过程启动的一部分而创建的单身人士,仅此而已。
是什么让这个(com.login.LoginActivity)被识别为启动文件?那是MAIN和LAUNCHER?
如果“要识别启动文件”是指“有一个图标显示主屏幕启动器”,那么是,<intent-filter>
上的<activity>
导致了这一点。