Developper pour android

AndroidManifest.xml

ce fichier définit les points d'entrée de votre programme,

si comme moi vous renommer le nom du package par défaut, ne pas oublier de modifier son nom dans le manifest

android:installLocation="preferExternal" ou "auto" pour une installation sur le disque dure

la ligne label de l'application se retrouvera dans la gestion des programme pour le supprimer sur votre smartphone, et la partie icon renvoie à un fichier icon.png du sous répertoire drawable de res

la ligne label de l'activity se retrouvera dans la liste des programmes à lancer

<?xml version="1.0" encoding="UTF-8"?>

<manifest android:versionCode="000" android:versionName="0.0.0"

package="Psylon.Poker" android:installLocation="preferExternal"

xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>

<uses-permission android:name="com.example.bluetooth.PERMISSION_BLUETOOTH"></uses-permission>

<application android:label="@string/app_name" android:icon="@drawable/icon">

<activity android:name=".MainActivity" android:label="Poker">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

Son avec nbandroid

nbandroid est le plugin pour android sur netbeans

Il semble qu'il compresse les fichiers sons des ressources de telle façon que les primitives audio ne peuvent plus le jouer et déclenche un resourcesNotFoundException indiquant qu'il est probablement compressé

Pour éviter cette compression, il faut modifier le fichier build-impl.xml sous nbproject ainsi


<zip destfile="${dist.apk}_" update="true" keepcompression="true">
<
fileset dir="${package-dex.dex.folder}" includes="${package-dex.dex.file}"/>
</zip>
This only compresses the .dex file but leaves the existing files, including the resources, uncompresse
d.

source : http://kenai.com/jira/browse/NBANDROID-50
 

 

Logs sous android

Pour voir les traces de votre programme, il faut lancer la console de debugging dbms à trouver sous tools du kit android

les traces peuvent écrire via import android.util.Log; Log.v|d|i|w|e("emetteur", "message");

mais le system.out s'y affiche également en affichant l'émetteur système à partir du niveau i

XML

La composition d'un dialogue se fait en XML

Sous netbeans, les ressources apparaissent sous le répertoire Resources, mais sous le disque et le jar ils seront sous le répertoire res

bulletres\layout pour l'xml du dialogue
bulletres\drawable pour les images
bullet...

exemple de fragment d'xml :

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/ordinateurStatus"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ordinateur status"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

Le fichier xml est compilé pour générer un fichier R.java qui contient les identifiants des objets

l'identifiant permet de récupérer la référence d'un objet dans le programme, ex :

ordinateurStatus = (TextView) findViewById(R.id.ordinateurStatus);

vous pouvez utiliser DroidDraw pour concevoir et tester vos xml

Un utilitaire du kit de développement layoutopt.bat permet de vérifier le xml

Ajouter une librairie

On peut développer une librairie android

bulletEn créant un projet de type java librairie, ajouter à la branche librairies du projet, la bibliothèque android.jar récupérée du kit de développement pour que votre projet ait le contexte android.jar
bulletSi la librairie est du code indépendant de l'environnement android on peut faire de même sans ajouter android.jar, voire utiliser une librairie javame pour qu'elle soit partageable dans les trois java, javame, javase, java android
bulletAjouter la librairie générée sous dist à la branche librairie du projet développé

Ajouter dans le build.xml, les recopies des librairies vers le répertoire de construction

<target name="-pre-jar">
 

<copy todir="${build.classes.dir}">
    <fileset dir="${basedir}/../JavaSys/dist">
        <include name="*.jar"/>
    </fileset>
</copy>
 

<copy todir="${build.classes.dir}">
    <fileset dir="${basedir}/../JavaAn/dist">
        <include name="*.jar"/>
    </fileset>
</copy>
    <copy todir="${build.classes.dir}">
    <fileset dir="${basedir}/../Poker/dist">
        <include name="*.jar"/>
    </fileset>
</copy>
</target>


</project>

 

Boite de dialogue sans bouton sous android

import android.app.Activity;

import android.content.DialogInterface;

import android.app.AlertDialog;

public class LangagesList

{

        static AlertDialog.Builder ab;

        static AlertDialog alert;   // il faut avoir un contexte de boite pour pouvoir la fermer

        static public void show(Activity activity)

        {

                AlertDialog.Builder ab = new AlertDialog.Builder(activity);

                ab.setTitle("Language");

                final String langages[] = {"Français","English"};

                ab.setSingleChoiceItems(langages, 0, new DialogInterface.OnClickListener()

                {

                            public void onClick(DialogInterface dialog, int whichButton)

                            {

                                        ConfigSys.english = whichButton==1;

                                        alert.cancel(); // c'est la fonction qui permet de fermer la boite

                            }

                });

                alert = ab.create();

                alert.show();

}

Installation sur carte sd

en construction, je n'arrive pas à le faire mar

Avant la 2.2, les logiciels ne s'installait que sur la mémoire internet et beaucoup le font encore

Pour modifier les directives d'installation il faut installer le sdk, ajouter son chemin dans le path (paramètres systeme, avancés, variables d'envirronement, path, ajouter le sous répertoire tool du répertoire d'installation du sdk ";C:\prg\android-sdk-windows\tools"

installer apk_manager

copier le programme à modifier xxx.apk dans le répertoire place-apk-here-for-modding, cliquer sur Script.bat

faire 22 pour sélectionner le projet, 1 si vous n'avez mis qu'un apk dans le répretoire modding, puis 1 pour dezipper le programme, puis 9 pour le décompiler

dans le répertoire projet/nom de votre programme, editer AndroidManifest.xml avec votre editeur de texte favori

ajouter "android:installLocation="auto""

ou preferexternal derrière la version

 

 

 

 

 

Accueil ] Remonter ]