簡體   English   中英

使用Android庫項目的付費和免費應用程序-如何有效編碼?

[英]Paid and Free App using Android Library Project - How to code effectively?

我打算使用android庫項目方法發布免費的android應用程序的付費版本。 http://developer.android.com/tools/projects/index.html

我的應用程序具有幾個獨立的(非用戶界面)類和資源,可輕松在付費版本和免費版本之間重用。

我的問題是有關管理用戶界面邏輯(Activity類中的代碼)的最佳方法。 假設我的免費應用程序有一個按鈕,而付費應用程序在同一活動中有兩個按鈕。 實現此目的的最佳方法是進行以下設置?

Android庫項目

1)一鍵式布局
2)一個Ativity.java文件,其中包含單擊按鈕時的邏輯

免費應用

使用庫項目中的布局和源代碼

付費應用

1)一個帶有兩個按鈕的布局文件
2)一個新的 Activity.java,它具有完全相同的用於處理button1單擊的代碼和用於處理button2單擊的新代碼。

這似乎不對,因為在付費應用程序中button1的邏輯似乎是浪費的副本……是否有更好的方法來做到這一點?

您可以使用所有功能創建一個項目庫

您只需要一種可以確定應用程序是付費還是免費的方法

為此,請按照以下步驟操作

1)假設testFree創建一個新的應用程序

2)在庫項目中創建一個新的應用程序類,如下所示

package com.example.testlib;

import android.app.Application;

public class App extends Application{

private static App mInstance;

public App() {
    mInstance = this;
}

public static App getInstance() {
    return mInstance;
}

public boolean isFree()
{
    return true;
}
}

3)假設testPaid創建一個新的應用程序

4)在testPaid應用程序中創建一個新的Application類,如下所示

package com.example.testpaid;

import com.example.testlib.App;

public class AppPaid extends App {

@Override
public boolean isFree() {
    // TODO Auto-generated method stub
    return false;
}

}

5)將testFree應用程序上的應用程序名稱設置為我們在庫類上創建的應用程序類,並從庫類中設置主程序和啟動器活動

<application
    android:name="com.example.testlib.App"
   ....
    <activity
        android:name="com.example.testlib.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>

6)現在設置應用程序名稱以創建testPaid應用程序的應用程序類,以及庫項目中的main和launcher活動,如下所示

 <application
    android:name="com.example.testpaid.AppPaid"
    ....
    <activity
        android:name="com.example.testlib.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>

7)您現在在任何類別的圖書館項目中所設置的所有內容,都有一種方法可以檢查您的應用程序是免費還是付費的,您可以按照以下方式進行檢查,並在此基礎上可以使付費應用程序看到某些付費功能,而某些則免費釋放

 if(App.getInstance().isFree())
        {
            Toast.makeText(getActivity(), "Free App", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(getActivity(), "Paid App", Toast.LENGTH_SHORT).show();
        }

讓我知道您是否仍然有任何問題.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM