ÀÚ¹Ù·Î ¸¸µç Ç÷¯±×ÀÎÀ» À¯´ÏƼ¿¡¼ ¾î¶»°Ô Á¢±ÙÇÏ´ÂÁö ¾Ë¾Æº¸ÀÚ.
ÀÌŬ¸³½º¿¡¼ ÀÚ¹Ù·Î Ç÷¯±×ÀÎ ¸¸µé±â
1. ÀÌŬ¸³½º¸¦ ¿¬´Ù.
ÀÌŬ¸³½º ¹öÀüÀº ´ÙÀ½°ú °°´Ù.
Eclipse Java EE IDE for Web Developers.
Version: Mars Release (4.5.0)
Build id: 20150621-1200
2. File > New > Project ¸Þ´º¸¦ Ŭ¸¯ÇÑ´Ù.
3. "New Project"â¿¡¼ "Android Application Project"¸¦ ¼±ÅÃÇÑ´Ù.
4. ¾ÖÇø®ÄÉÀÌ¼Ç À̸§À» Àû°í , °è¼Ó Next ¹öÆ°À» Ŭ¸¯Çؼ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù.
appcompat_v7 ÇÁ·ÎÁ§Æ® »ý¼º ¾ÈÇϱâ
Minimum Required
SDK¸¦ API 8: Android 2.2 (Froyo)·Î »ý¼ºÇϸé appcompat_v7 ÇÁ·ÎÁ§Æ®°¡ »ý¼ºµÈ´Ù.
appcompat_v7´Â ÇÏÀ§±âÁ¾¿¡¼ »õ·Î³ª¿Â UI¸¦ ½ÇÇàÇÒ¶§ ÇÊ¿äÇÑ °ÍÀ¸·Î ¿¹Àü ±âÁ¾À» Áö¿øÇÏÁö ¾Ê´Â´Ù¸é ÇÊ¿ä ¾ø´Â
ÇÁ·ÎÁ§Æ®ÀÌ´Ù.
appcompat_v7¸¦ »èÁ¦Çϸé
ÇÁ·ÎÁ§Æ® ¿À·ù°¡ ¹ß»ýÇÑ´Ù.
appcompat_v7 ÇÁ·ÎÁ§Æ®
»ý¼ºÀ» ¸·À»·Á¸é Minimum Required SDK¸¦ API 8À» ÃÖ½ÅÀ¸·Î ÇÏ°í
AndroidManifest.xml
ÆÄÀÏ¿¡¼ android:minSdkVersionÀ» 9·Î ÇÏ¸é µÈ´Ù.
|
< AndroidManifest.xml >
<?xml
version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.plugin"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".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>
|
5. ÇÁ·ÎÁ§Æ®¿¡¼ ¸¶¿ì½º ¿ìŬ¸¯ÇÏ¿© Properties¸¦ ½ÇÇàÇÑ´Ù.
6. Properties¿¡¼ ¶óÀ̺귯¸®¸¦ üũÇÑ´Ù.
¾Èµå·ÎÀ̵å ÅÇ Å¬¸¯ > Is Library üũ > Apply Ŭ¸¯ > OK ¹öÆ°À¸·Î ¸¶¹«¸® ÇÑ´Ù.
7. ÇÁ·ÎÁ§Æ® bin Æú´õ ¾Æ·¡¿¡ jar ÆÄÀÏÀÌ »ý¼ºµÇ¾î ÀÖ´Ù.
8. "New Java Class" ´ëÈ»óÀÚ¸¦ ¿¾î Àڹ٠Ŭ·¡½º¸¦ »ý¼ºÇÑ´Ù.
Ŭ·¡½º À̸§ "Test"¸¦ ÀÔ·ÂÇÏ°í "Finish" ¹öÆ°À» ´©¸¥´Ù.
9. Á¤ÀûÀÎ ¸Þ¼Òµå¿Í ÀνºÅϽº ¸Þ¼Òµå¸¦ ÀÛ¼ºÇÑ´Ù.
package
com.example.plugin;
public class Test {
public static String GetStaticString(String a)
{
return "Plugin static: " + a;
}
public static int GetStaticInt(int a)
{
return a + 1000;
}
public String GetString(String a)
{
return "Plugin object: " + a;
}
public int GetInt(int a)
{
return a + 50000;
}
}
|
10. Build AutomaticallyÀÌ Ã¼Å© µÇ¾î ÀÖÀ¸¸é ÀúÀå°ú µ¿½Ã¿¡ ÀÚµ¿ ºôµå µÈ´Ù.
11. Bin Æú´õ °æ·Î È®ÀÎ
Properties¿¡¼ Resource ÅÇÀ» Ŭ¸¯ÇÏ¿© Bin Æú´õÀÇ °æ·Î¸¦ È®ÀÎÇÑ´Ù.
À¯´ÏƼ¿¡¼ Ç÷¯±×ÀÎ ¿¬µ¿
1. ¸ÞÀÎ Ä«¸Þ¶ó¿Í GUIText¸¸ ¹èÄ¡ÇÑ´Ù.
2. Ç÷¯±×ÀÎ ÆÄÀÏÀ» Plugins/Android Æú´õ·Î º¹»çÇÑ´Ù. ( Plugins/Android Æú´õ°¡ ¾øÀ¸¸é »ý¼ºÇÑ´Ù)
3. Ç÷¯±×ÀÎÀ» »ç¿ëÇÏ´Â Test.cs ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
4. ¼Ò½º ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
using
UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GUIText _gui;
// Use this for initialization
void Start ()
{
#if UNITY_EDITOR
_gui.text = "gui in Editor";
#elif UNITY_ANDROID
AndroidJavaClass staticClass =
new AndroidJavaClass("com.example.plugin.Test");
string resStaticStr =
staticClass.CallStatic<string>("GetStaticString",
"GetStaticString");
string str = resStaticStr + "\n";
AndroidJavaObject javaObject =
new AndroidJavaObject("com.example.plugin.Test");
string dynamicStr =
javaObject.Call<string>( "GetString", "GetString");
str += dynamicStr;
_gui.text = str;
#endif
}
} |
Á¤ÀûÀÎ ¸Þ¼µå¿¡ Á¢±Ù
AndroidJavaClass·Î Ŭ·¡½º À̸§¿¡ Á¢±ÙÇÏ°í CallStaticÀ¸·Î ¸Þ¼µå¿¡ Á¢±ÙÇÑ´Ù.
new AndroidJavaClass("com.example.plugin.Test");
string resStaticStr = staticClass.CallStatic<string>("GetStaticString",
"GetStaticString");
µ¿ÀûÀÎ ¸Þ¼µå¿¡ Á¢±Ù
AndroidJavaObject·Î Ŭ·¡½º À̸§¿¡ Á¢±ÙÇÏ°í CallÀ¸·Î ¸Þ¼µå¿¡ Á¢±ÙÇÑ´Ù.
AndroidJavaObject javaObject = new AndroidJavaObject("com.example.plugin.Test");
string dynamicStr = javaObject.Call<string>(
"GetString", "GetString");
5. ½ÇÇàȸéÀÌ´Ù.
|