• Как защитить Android приложение от копирования?

    @babay88
    самый простой способ — сделать фри-версию с рекламой. плюс — in-app purchase — дабы пользователь мог внутри приложения купить ad-free.
    таким образом, у вас не будет отдельного приложения без рекламы — которое надо защищать и не давать копировать.
    пользователь в целом не имеет возможности подделать уведомления о покупке чего бы то ни было через google in-app purchase.

    плюс, конечно же, надо использовать обфускатор кода. хотя бы встроенный proguard.
    плюс — не хранить в открытом виде важные для проверки подлинности строки — а как-нить хитрым образом их получать.

    плюс — есть возможность получить ID устройства. который, теоретически, никогда не меняется. если надо — могу написать метод, которым его можно получить. из-за бага — встроенное получение кода может глючить в андроиде 2.2 и ниже. но и это решается. ну и нарисовать свой сервер, который хранит — кто купил, а кто — нет.

    но самый лучший способ — действительно — ввести халявщиков в бизнес-модель приложения.
    попытаться понять — как Вы их сможете использовать.
    варианты.
    1. реклама.
    2. в принципе, халявщий может через какое-то время проникнуться и заплатить.
    3. халявщики способствуют росту популярности приложения — и как следствие, росту продаж.
    4. есть есть всяческие in-app purchase — и разводка пользователя на эти микротранзакции — то можно и бесплатно скачивать. главное — чтобы потом платили.

    но это всё не отменяет желательности обфусцировать код.
    Ответ написан
    Комментировать
  • Android. Вопрос о контролах?

    @babay88
    а что мешает просто сделать вьюхи?
    например, кутовая вьюха активити примерно такая:
    <RelativeLayout xmlns:android=«schemas.android.com/apk/res/android»
    android:layout_width=«fill_parent»
    android:layout_height=«fill_parent»
    android:id="@+id/root"
    >
    … тут весь контент вьюхи. можно использовать android:layout_above android:layout_below итд — для позиционирования элементов. ну или android:layout_align_parent_top, android:layout_center_horizontal
    итд

    </Relative layout>

    далее, в отдельном файле делаем вьюху — наше «меню».
    когда нужно — добавляем её к нашей рутовой вьюхе.
    сначала подгружаем:
    View v = View.inflate(getContext(), R.layout.partial_buttons, null)

    в качестве LayoutParams используем что-нить такое:
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);

    далее, добавляей рутовой вьюхе нашу менюшку
    ((ViewGroup)findViewById(R.id.root)).addView(v, lp)

    когда она нам больше не нужна — просто делаем ей
    v.setVisibility(View.GONE) — таким образом, она будет не видна, но всё еще в памяти — не надо будет в следующий раз подгружать заново.

    это если делать ручками. ничего сложного.
    но можно использовать и библиотеки. ибо — почему бы и нет.
    Ответ написан
    Комментировать