http://www.xuanyusong.com/archives/3395

1.游戏包名( 类似 com.xx.xxx )

Android应用程序只能有一个包名,如果两个游戏包名一样,那么后者安装后会覆盖了前者。如下图所示,在ProjectSetting里面Bundle Identifier* 就是了。

不同渠道的包名不能相同,所以用shell自动打包的时候,可以先自动在unity里面设置你的游戏包名。这个游戏包名特别容易和你自己写的java.class混淆或者和sdk的包名混淆。。

2.Activity和View是啥区别?

这就要从游戏开发和软件开发的区别说起了。软件开发中每个界面就是一个Activity。比如我们玩的微博、微信一类的软件、每当你点击某个按钮切换界面的时候,其实就是新开了一个Activity,界面上的按钮啊 图标、输入框等等、所有显示单位都是一个View。一个软件程序随随便便10几20个Activity,每一个Activity上面会放很多不同的view。

而游戏开发,只有一个Activity、并且这个Activity上面只有一个View。游戏中的所有控件都是靠我们自己用代码来写成的。自己写的肯定没有源生的效果好了,举个例子你会发现为软件程序的列表滚动要比游戏里的列表滚动舒服很多,呵呵。

扯远了~

3.MainActivity

每个Android应用程序都需要一个启动的Activity。也就是在手机里你点了一个游戏的icon这时候打开游戏,弹出的第一个Activity。

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yusong.momo" >
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.yusong.momo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

package:就是包名前面我们说了android每个应用程序有且只能有一个包名。

每一个Activity都要在“<activity /activity> ”中间预先声明。还要设置一个MainActivity,因为我们就一个Activity所以这里就设置它为MainActivity,也就是下面这两句。

<intent-filter>
<action android:name=”android.intent.action.MAIN” />  //表示该Activity是MainActivity。
<category android:name=”android.intent.category.LAUNCHER” />//表示在手机上点击游戏图标弹出该Activity
</intent-filter>

如果你有两个MinActivity就必须将他们合并成一个,或者只能保留一个MainActivity了。

4.MainActivity和AndroidManifest怎么写

具体可以参考unity的模板、unity.app->显示包内容->Contents->PlaybackEngines->AndroidPlayer

AndroidManifest.xml

还有com/unity3d/player/ UnityPlayerNativeActivity.java

最好参考模板来写。

5.我有两个包怎么合并?

src下面一般是com/xxx/xxx/Mainactivity.java这样的结构。

com/xxx/xxx可以和你的游戏包名不同。

6.C#调用java

C#调用Activtiy.游戏只有一个Activity不存在多个。就算项目真有多个activity,一旦打开它会盖住你的unity的activity的。这部分逻辑可以在java部分完成。。

MainActivtiy.java里面有一个Purchase的方法,并且接收一个参数, 一般就是 int float string bool 等。

 
 
1
2
3
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("Purchase", productId);

C#调用静态类,静态方法。com.yusong.momo 下面放了一个staticClass的静态类。SetConfig就是它的静态方法。

 
 
1
2
AndroidJavaClass jc = new AndroidJavaClass("com.yusong.momo.staticClass");
jc.CallStatic("SetConfig", id);

Android工程的合并的更多相关文章

  1. 主工程中合并库工程的Manifest文件

    修改project属性文件中的 manifestmerger.enabled=true,就可以实现Android Manifest的合并. 主要用于lib工程和主工程之间. eg: target=an ...

  2. Android工程:引用另一个Android工程的方法详解

    本篇文章是对在Android中引用另一个Android工程的方法进行了详细的分析介绍.需要的朋友参考下   现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新 ...

  3. android工程下assets与raw文件夹

    在应用的开发中,当我们创建一个新的Android工程后,我们会发现工程中包含了一个目录assets,另外当我们察看一些示例工程的时候,有时会发现在该工程的资源目录下会有一个raw目录(res/raw) ...

  4. GJM : Unity3D HIAR -【 快速入门 】 五、导出 Android 工程、应用

    导出 Android 工程.应用 在开始之前,请务必先保存您的工程,同时确认您已经安装 Android SDK 和 JDK.安装操作请参考以下链接: 搭建开发环境 Step 1. 设置 Android ...

  5. Android工程的编译过程

    现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要 ...

  6. Unity3D 解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题

    解决用Unity导出的Android工程在6.0及以上设备会弹出一串权限对话框的问题 <meta-data android:name="unityplayer.SkipPermissi ...

  7. eclipse android工程没有错却出现红叉

    [转]eclipse android工程没有错却出现红叉 问题描述: 这是一个很变态的问题,花了我N多时间才解决掉,而且弄得心情非常郁闷,这明显是ADT的bug嘛,为什么最新的版本还没有解决? 将Li ...

  8. Android入门(二):Android工程目录结构

    首先我们来看看Android工程的目录结构,如下图: 下面我们来看看每个文件夹都是用来做什么的? 1.src:这个不用多说,它就是保存Java源文件的目录: 2.gen:该文件夹用来保存自动生成的R. ...

  9. Android入门(一):创建Android工程

    开发Android应用过程一般分为三步: 1.创建一个Android工程: 2.在xml布局文件中定义应用所包含的控件: 3.在Java代码中实现业务逻辑. 此文就介绍第一部分,创建一个Android ...

随机推荐

  1. service mc_start.sh does not support chkconfig

    在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig 添加下面两句到 #!/b ...

  2. Python Unittest进行接口测试的简单示例

    今年肯定是要把Python学到一定程度的,否则感觉自己混不下去了,那就开始半挣扎的咸鱼生活吧. ---------------------------------------------------- ...

  3. Thread.interrupt()源码跟踪

    1 JDK源码跟踪 // java.lang.Thread public void interrupt() { if (this != Thread.currentThread()) checkAcc ...

  4. mysql允许root远程登录

    MySQL 默认不允许远程以root进行登陆 进入mysql后 mysql>select host, user from user; +--------------------+------+ ...

  5. SQL Server2008 查找用户登录日志

    select loginname,accdate from sys.syslogins

  6. POJ1861(Network)-Kruskal

    题目在这 Sample Input 4 6 1 2 1 1 3 1 1 4 2 2 3 1 3 4 1 2 4 1 Sample Output 1 4 1 2 1 3 2 3 3 4 题目意思:4个点 ...

  7. iOS - Scenekit3D引擎初探之 - 导入模型+上传服务器+下载并简单设置

    SceneKit是ios8之后苹果推出了一个3D模型渲染框架. SceneKit现在可以支持有限的几种模型,截止到我写这篇文章为止似乎只有.dae和.abc后一种模型我没有使用过.这篇文章只针对.da ...

  8. nginx 反向代理配置(二)

    上一篇文章主要是对 nginx 各个模块做了一个介绍,以及对什么是反向代理在文章开头做了一个简单介绍,这篇文章我们主要来看下如何进行 nginx 反向代理的配置 proxy 模块      nginx ...

  9. ABAP-信息结构S901/S902程序问题

    1.问题 信息结构请求传入正式环境后,RMCX0070/RMCX0071程序执行DUMP,无法调用程序SAPFMCBF中的子FORM程序 MCB1_901 或是 MCB2_901 . 2.经查SAPF ...

  10. 高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

    HashMap.CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构.原理.扩容机制深入谈过hashmap的实现原理以及在JDK 1. ...