2011-08-26 2 views
3

J'ai une application publiée que j'utilise quotidiennement, installée sur mon téléphone. Je veux aussi/j'ai besoin de continuer à le développer, et je débogue sur le même téléphone (pas d'émulateur). Utiliser eclipse, est la meilleure solution pour renommer le paquet mis à jour pendant que je le construis et le débogue pour que je puisse continuer à utiliser l'ancienne version, ou y a-t-il un autre moyen? Si c'est la solution, puis-je refactoriser un nom de package ou dois-je les modifier manuellement?Est-il possible d'avoir une version stable et une version nocturne de l'application sur mon appareil?

J'ai fait une recherche, et je ne crois pas que ce soit une copie car je ne veux pas publier plusieurs versions de l'application. Ce serait juste pour moi, et je suis enraciné si cela aiderait ma cause.

+0

Mise à jour: Pour tout le monde plus tard, j'ai essayé ceci sur un projet de test et il a semblé fonctionner. J'ai refacturé le paquet, changé le nom du paquet dans le manifeste (qui n'a pas été attrapé par le refactoring), nettoyé le projet, et laissé éclipse le reconstruire. Vous pouvez également changer l'icône pour pouvoir les différencier. – Mobius

+0

Mise à jour 2: Il fallait également supprimer l'ancienne version importée d'eclipse oldpackagename.R et modifier les destinataires du manifeste afin que leurs actions appellent le nouveau paquet, et non le paquet stable. Ce n'était vraiment pas si mal. – Mobius

Répondre

0

Ce qui a bien fonctionné pour moi, c'est d'utiliser les projets de la bibliothèque Android. J'ai un Paid, Free et une version de développement de mon application qui utilisent tous la même base de code.

Mon code de base principal est un projet de bibliothèque Android et j'ai créé d'autres projets pour les différentes versions. Ensuite, dans votre classe Application, vous établissez une distinction entre la version sur laquelle vous vous trouvez pour déterminer si vous avez besoin de fonctionnalités différentes. Dans votre cas, vous aurez juste un nom de paquet différent.

Voici quelques liens pour vous aider à démarrer si vous souhaitez emprunter cette route. Il a très bien fonctionné pour moi, et je ne voulais pas aller sur la route des scripts Ant:

http://developer.android.com/guide/developing/projects/projects-eclipse.html#SettingUpLibraryProject

http://blog.donnfelker.com/2010/08/05/howto-android-full-and-lite-versions/

http://www.marvinlabs.com/2011/01/sharing-code-full-lite-versions-application/

+0

Je vais regarder dans ceux-ci, merci. – Mobius

0

Il existe un refactor-Menu pour renommer les classes et les fonctions, donc le refactoring devrait être assez facile. Mais je ferais le contraire et renommerais l'application stable une fois sur votre téléphone au lieu de renommer chaque build que vous faites - de cette façon, vous n'avez qu'à renommer l'application stable une fois que vous souhaitez mettre à jour vers une nouvelle version stable. A l'université, nous avons eu un problème similaire et avons construit un petit script de construction, qui copiait et renommait les bibliothèques, etc. à l'emplacement approprié (dans notre cas, nous voulions gérer les builds iOS et Android à partir de la même source, donc le script de construction a dû aussi créer des fichiers de configuration à partir de modèles de configuration). Malheureusement, Eclipse ne fournit pas un moyen facile de définir des scripts de pré-construction via les options d'un projet ou quelque chose de similaire (comme le fait VisualStudio).

+0

Est-il même possible de renommer une application compilée une fois sur l'appareil et toujours avoir sa fonction? Où changerais-je le nom? Je pense que le manifeste, y compris les récepteurs/actions, et l'emplacement réel aurait besoin d'être changé. Je peux essayer juste pour voir ce qu'il fait si aucune autre option ne peut être trouvée. – Mobius

0

Vous pouvez le faire facilement avec le plugin Android Maven. Bien sûr, cela entraîne des frais supplémentaires d'avoir à utiliser Maven juste à cet effet, mais c'est super facile, et vous n'avez pas besoin de déplacer quoi que ce soit.

<properties> 
    <androidManifestFile-location>${project.build.directory}/AndroidManifest.xml</androidManifestFile-location> 
    <outputApk>${project.build.directory}/${ota-dir}/${application.name.forapk}-${project.version}.${project.packaging}</outputApk> 
    <debug-signing>false</debug-signing> 
    <android.renameManifestPackage>${target.package}</android.renameManifestPackage> 
    </properties> 

Tant que les clés de $ {} de target.package sont différentes entre les « installations », vous pouvez installer le côté des applications côte à côte.

Questions connexes