2010-05-16 34 views
7

Merhaba Ben java android uygulamaları geliştirmek için windows ve eclipse IDE kullanarak bir başlangıç ​​android geliştiricisi değilim.Bir oyun yayınladı ama oyunun ücretsiz bir sürümü ve ücretli bir sürümü var . Google pazarı, farklı sürümlerin farklı paket adlarına sahip olması gerektiğinde ısrar ediyor. Şimdiye kadar, farklı sürümleri her kurduğumda, paketi 2 farklı isimle yeniden düzenleyip R kaynak dosyasını içe aktarmayı değiştirdim. Kod her iki sürüm için de% 99 aynıdır. Daha iyi bir yol var mı?Android & Eclipse Aynı uygulamanın 2 farklı versiyonu

cevap

2

Bu konu hakkında here ve there çeşitli tartışmalarınız vardır, ancak temel olarak çözüm projeyi çoğaltmaya benzer. (Tutulma dayanmaz) Örneğin

:

Biz fark uygulamanızın özgür ve serbest olmayan sürümleri arasında ne olduğunu bilmiyorum çünkü bu cevap vermek zordur.

Farklılıkların bir tür küresel özgür/özgür olmayan bayrakla ele alınabileceğini varsayacağım. O, ben aynı kod app her iki sürümünü makyaj anlamına ve hangi bölümlerini etkin ya da bir yere bazı kamu statik veri üyesi bağımlı olacaktır kullanılır:

if (SomeClass.IS_PAID_APP) { 
     // add more stuff to menu, etc. 
} 

Eğer yapabiliyorsanız Uygulamanızı bu şekilde düzenleyin, sonra sadece bir kod tabanına ihtiyacınız var.
Uygulamanızın bu sürümü için manifestinizde uygun bir paketle uygulamanızı bir yol (ücretsiz veya ücretli, tercihiniz) oluşturmak için hazırlayın.
Ardından yapar bir Ant görev eklemek aşağıdadır:

  1. bir Arama-aracılığı geçici bir konuma
  2. Anahtarı yeni paket ismi olarak tezahür kopyası için proje dir ağacıdır kopyasını yapar değil orijinal
  3. sizin IS_PAID_APP değiştirin (ya da kopya üzerinde tekrar arama ve değiştirme yoluyla yine için
  4. Anahtarı yeni bir paket R eski paketin baskısı için tüm ithalat ifadeleri ve değiştirme, ve ne olursa olsun) karşıt değere (arama ve değiştirme kopyasında)
  5. kopyalar bundan ikili ana projenin bin ayrı isim altında/ dizin (için inşa projesinin kopyası için bir Ant yapı çalıştırır böylece kokan t APK'nın diğer kopyasını )
  6. Java ön işlemci olsaydı 1

, bu biraz daha basit olurdu adım # yapılan ağaç kopyasını siler clobber. Bununla birlikte, yukarıda tarif ettiğim temel teknik, birkaç on yıldır kullanılmaktadır. Kalabalıktır, ama işe yarıyor, ve bununla başa çıkmak için sadece bir kaynak kod kümeniz var demektir. Ant <replace> görevinin, ara ve değiştir öğelerinizi iyi işleyeceğini unutmayın.

1

Bu, Android Market'in başarısızlıklarından biridir, ancak neden böyle yaptığını anlayabiliyorum.Uygulamanızın Ücretsiz ve Ücretli sürümlerine sahip olmak için tasarlanmamıştır (24 saat iade politikasının bunun ne için olduğunu iddia eder, ancak bunun yerine korsanlık için kullanılır) -:

Her halükarda, yazılması en basit şey bir Ant derleme betiği (veya kullandığınız herhangi bir betik dili). Tüm .xml ve .java dosyalarından paket adınızın yerine bir arama yapın. Ardından, uygulamanızın yapısını orada yapın. Kodunuzu yeniden kodlamak, IMHO değerinden daha fazla acı veriyor ...

İlgili konular