Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
How to tune gideros project template to publish on android market — Gideros Forum

How to tune gideros project template to publish on android market

MysiaGamesMysiaGames Member
edited January 2013 in General questions
Working with Gideros was a pleasure, it's a great system. But near to the publish step I have some questions about.

I finished a game project on Gideros and export the project to eclipse. The APK generated works fine, I do these additional steps after export the Gideros project:

- Add 4 sizes android icons 36x36, 72x72, 48x48, 96x96
- Remove android permissions on manifest.xml file, ACCESS_WIFI_STATE, LOCATION, VIBRATE, ACCESS_FINE_LOCATION was out.
- The project was set on API 15 Android

My game doesn't use in-App feature, it will cost $1. It write and read a file to save hi-score, so i keep WRITE_EXTERNAL_STORAGE permission and INTERNET permission for access twitter and facebook pages. I noticed when the game was installed on an android tablet, the app install process request a "Development tools" permission to the user. I don't know how to remove this request on the manifest, maybe someone could give me some light at this.

However, the most important thing, I need some orientation to optimize the android project on eclipse. Maybe is there necessary other adjustments. I think, for example, those in-app packages could be remove, because is not needed on my case ( a paying app )

Anyone could help me?

Comments

  • hgvyas123hgvyas123 Guru
    edited January 2013 Accepted Answer
    make sure your manifest file looks like below
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="<a href="http://schemas.android.com/apk/res/android&quot" rel="nofollow">http://schemas.android.com/apk/res/android&quot</a>;
          package="com.yourdomain.yourapp"
          android:versionCode="1"
          android:versionName="1.0"
          android:installLocation="preferExternal">
     
        <uses-sdk android:minSdkVersion="8" />
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
     
        <uses-permission android:name="android.permission.VIBRATE"/>
        <uses-feature android:glEsVersion="0x00010001" />
        <supports-screens android:largeScreens="true"
                          android:smallScreens="true"
                          android:normalScreens="true"
                          android:xlargeScreens="true"
                          android:anyDensity="true"/>
        <application android:icon="<a href="http://forum.gideros.rocks/profile/drawable%2Ficon%26quot" rel="nofollow">@drawable/icon&quot</a>; android:label="<a href="http://forum.gideros.rocks/profile/string%2Fapp_name%26quot" rel="nofollow">@string/app_name&quot</a>; android:theme="<a href="http://forum.gideros.rocks/profile/android" rel="nofollow">@android</a>:style/Theme.NoTitleBar.Fullscreen">
            <activity android:label="<a href="http://forum.gideros.rocks/profile/string%2Fapp_name%26quot" rel="nofollow">@string/app_name&quot</a>; android:name="com.giderosmobile.android.fruitFeederActivity" android:screenOrientation="portrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <service android:name="com.giderosmobile.android.plugins.googlebilling.BillingService" />
     
            <receiver android:name="com.giderosmobile.android.plugins.googlebilling.BillingReceiver">
                <intent-filter>
                    <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
                    <action android:name="com.android.vending.billing.RESPONSE_CODE" />
                    <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
                </intent-filter>
            </receiver>
    	</application>
    </manifest>
    it would be fine if there is one or tow extra permission are there if you are using landscape mode consider to change this line android:screenOrientation="portrait"

    every thing is fine now

    from the eclipse right click on your project select android tool and then export signed application package
    follow some simple steps and you are ready to upload.



    :)

    Likes: MysiaGames

    +1 -1 (+1 / -0 )Share on Facebook
  • ohh i forgot below two lines are very important

    android:installLocation="preferExternal">

  • ar2rsawseenar2rsawseen Maintainer
    edited January 2013 Accepted Answer
    Yes about permissions right, you can remove what you don't need.
    Additionally if you don't use in-api purchases you can remove
     <service android:name="com.giderosmobile.android.plugins.googlebilling.BillingService" />
     
            <receiver android:name="com.giderosmobile.android.plugins.googlebilling.BillingReceiver">
                <intent-filter>
                    <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
                    <action android:name="com.android.vending.billing.RESPONSE_CODE" />
                    <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
                </intent-filter>
            </receiver>
    And then remove ggooglebilling.so files, delete google billing plugin Java files from src folder and inside main activity Java delete the lines Where you load google billing library and add as external class:
    System.loadLibrary("ggooglebilling");
    "com.giderosmobile.android.plugins.AdMob"

    And additionally to @hgvyas123 addtions I also add android:launchMode="singleTop" to the activity as:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="<a href="http://schemas.android.com/apk/res/android&quot" rel="nofollow">http://schemas.android.com/apk/res/android&quot</a>;
          package="com.yourdomain.yourapp"
          android:versionCode="1"
          android:versionName="1.0"
          android:installLocation="preferExternal">
        <uses-sdk android:minSdkVersion="8" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-feature android:glEsVersion="0x00010001" />
        <supports-screens android:largeScreens="true"
                          android:smallScreens="true"
                          android:normalScreens="true"
                          android:xlargeScreens="true"
                          android:anyDensity="true"/>
        <application android:icon="<a href="http://forum.gideros.rocks/profile/drawable%2Ficon%26quot" rel="nofollow">@drawable/icon&quot</a>; android:label="<a href="http://forum.gideros.rocks/profile/string%2Fapp_name%26quot" rel="nofollow">@string/app_name&quot</a>; android:theme="<a href="http://forum.gideros.rocks/profile/android" rel="nofollow">@android</a>:style/Theme.NoTitleBar.Fullscreen">
            <activity android:launchMode="singleTop" android:label="<a href="http://forum.gideros.rocks/profile/string%2Fapp_name%26quot" rel="nofollow">@string/app_name&quot</a>; android:name="com.giderosmobile.android.MashballsActivity" android:screenOrientation="landscape" android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    	</application>
    </manifest>

    Likes: MysiaGames

    +1 -1 (+1 / -0 )Share on Facebook
  • Thank you hgvyas123 and ar2rsawseen, your answers are very illustrative.

    To understand better, on external class there is an array:

    static private String[] externalClasses = {
    "com.giderosmobile.android.plugins.googlebilling.GGoogleBilling",
    };

    I guess that load the in-app class. However, if it needed AdMob class i can replace to:

    static private String[] externalClasses = {
    "com.giderosmobile.android.plugins.AdMob",
    };

    But, if i don't use anything ( no in-App, no AdMob ), how can i define this array? maybe:

    static private String[] externalClasses = {
    };
  • It would be good if there was something in the GiderOS editor to set the icon png and do all the conversions for you. It could also generate different manifests for different 'switches',
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
Sign In or Register to comment.