有关android java 中package 的问题

来源:互联网 发布:淘宝上的外卖是饿了么 编辑:程序博客网 时间:2024/05/22 07:09


一般的情况下,package之后带着包的路径跟源码的位置一致。例如:package com.hello.world 那对应的源代码的路径为:src/com/hello/world。但是有时候我们也可以将package 所带的xxx.xxx.xxx 跟文件的路径不一致。例如:package com.hello.worldtest , 在这种情况下,为了使apk能顺利编译通过,还得更改对应apk的AndroidManifest.xml文件中的 package="xxx.xxx.xxx"。

如下是具体的一个实例:

1.工程的具体目录

|-- AndroidManifest.xml|-- assets|-- bin|   |-- classes|   |   `-- com|   |       `-- hello|   |           `-- world|   |               |-- QrdhelloworldActivity.class|   |               |-- R$attr.class|   |               |-- R.class|   |               |-- R$drawable.class|   |               |-- R$layout.class|   |               `-- R$string.class|   `-- res|-- gen|   `-- com|       `-- hello|           `-- world|               `-- R.java|-- proguard.cfg|-- project.properties|-- res|   |-- drawable-hdpi|   |   `-- ic_launcher.png|   |-- drawable-ldpi|   |   `-- ic_launcher.png|   |-- drawable-mdpi|   |   `-- ic_launcher.png|   |-- layout|   |   `-- main.xml|   `-- values|       `-- strings.xml`-- src    `-- com        `-- hello            `-- world                `-- QrdhelloworldActivity.java

2. QrdhelloworldActivity.java 的内容 (注意:这里的package com.hello.worldtest;

package com.hello.worldtest;import android.app.Activity;import android.os.Bundle;public class QrdhelloworldActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }};import android.app.Activity;import android.os.Bundle;public class QrdhelloworldActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}

3.AndroidManifest.xml的内容(注意:package="com.hello.worldtest"

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.hello.world"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="10" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >        <activity            android:label="@string/app_name"            android:name=".QrdhelloworldActivity" >            <intent-filter >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

4.总结

package 之后的xxx.xxx.xxx 可以任意取,package 关键真正的作用是将编译出来.class 二进制文件指定到具体的xxx.xxx.xxx目录中,如果别的java源程序需要引用这些.class的时候,必须指定正确。例如:我们在应用上面的.class 的时候就不能package com.hello.world 而应该使用package com.hello.worldtest







原创粉丝点击