Skip to content

Commit

Permalink
Merge branch 'experimental' of https://github.com/openvk/mobile-andro…
Browse files Browse the repository at this point in the history
…id-legacy into middle
  • Loading branch information
tretdm committed Dec 26, 2024
2 parents 01dbd05 + 4e06fea commit 5cdd572
Show file tree
Hide file tree
Showing 30 changed files with 3,143 additions and 209 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "ndk-modules/ovkmplayer/ffmpeg-android-builder"]
path = ndk-modules/ovkmplayer/builder
url = https://github.com/tinelix/ffmpeg-android-builder
77 changes: 45 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,54 +13,67 @@ We will be happy to accept your bugreports [in our bug-tracker](https://github.c

## Download APK
* **via F-Droid**
* **[repo.openvk.uk](https://repo.openvk.uk/repo/)** (much faster, mirror ~~[without TLS](http://repo.openvk.co/repo/)~~ not paid)
* [f-droid.org](https://f-droid.org/packages/uk.openvk.android.legacy/)
* [izzysoft.de](https://apt.izzysoft.de/fdroid/index/apk/uk.openvk.android.legacy)
* [tinelix.ru](https://fdroid.tinelix.ru)
* **via [Telegram channel](https://t.me/+nPLHBZqAsFlhYmIy)**
* **via [Releases page](https://github.com/openvk/mobile-android-legacy/releases/latest)**
* **via [NashStore](https://store.nashstore.ru/store/637cc36cfb3ed38835524503)** _(for Russian phones kinda 😂)_
* **via [NashStore](https://store.nashstore.ru/store/637cc36cfb3ed38835524503)** _(why not?)_
* **via [Trashbox](https://trashbox.ru/topics/164477/openvk-legacy)**
* **via [4PDA](https://4pda.to/forum/index.php?showtopic=1057695)**

## Building
We recommend using [Android Studio 3.1.2](https://developer.android.com/studio/archive) and Java 7 for perfect support of libraries developed for Android 2.1 Eclair and above.
We recommend opening the project in [Android Studio 3.1.2](https://developer.android.com/studio/archive) along with Java 7 already installed for perfect support of libraries developed for Android 2.1 Eclair and above.

To provide support for non-native codecs (Theora, VP8, Opus), **FFmpeg v. 2.2.4** is used.

To compile them you need:
+ **GNU/Linux distro or WSL2** \
Yeah, it is still possible to build libraries on Linux/WSL2, perhaps an assembly will be added to Windows/Cygwin and macOS.

Tested on Debian 8.11.0, can be built in the latest distributions.
+ **[Android NDK r8e](http://web.archive.org/web/20130501232214/http://developer.android.com/tools/sdk/ndk/index.html) and [Android NDK r10e](https://github.com/android/ndk/wiki/Unsupported-Downloads#r10e)** \
If already there, you need to specify the path to your NDK via the `ANDROID_NDK_R8E` variable.

Android NDK `r8e` is highly recommended for providing FFmpeg support in Android 2.2 and below.

Also, in the project settings, specify the path to Android NDK r10e.
+ **Installed dependencies** \
See packages listing for [Ubuntu/Debian/Linux Mint](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu) or [CentOS/Fedora](https://trac.ffmpeg.org/wiki/CompilationGuide/Centos).

+ **Scripts that build FFmpeg from source** \
Run the command inside the OpenVK Legacy repository in terminal:
```sh
chmod +x ./build-ffmpeg.sh
ANDROID_NDK_R8E=[path/to/ndk-r8e] ANDROID_NDK_R10E=[path/to/ndk-r10e] ./build-ffmpeg.sh
```

The source codes of the FFmpeg libraries, as well as the code of builder for Android, are located in the `builder` submodule of the [`./ndk-modules/ovkmplayer` directory](https://github.com/openvk/mobile-android-legacy/tree/main/ndk-modules/ovkmplayer).

**ATTENTION!** After an `java.util.zip.ZipException: invalid entry compressed size (expected [m] but got [n] bytes)` error occurs in the `:[package_name]:mockableAndroidJar` task when using Android SDK Build-tools 28 and higher, be sure to clean the project.

## Used App Components
**Most compatible app components, including libraries, are guaranteed to work with Android 2.1 and above.**

You may also find them useful for developing applications that support very old Android versions, despite security and stability issues in current Android versions.

#### Libraries
1. **[Android Support Library v24 for 1.6+](https://developer.android.com/topic/libraries/support-library)** (Apache License 2.0)
2. **[HttpUrlWrapper](https://github.com/tinelix/httpurlwrapper)** (Apache License 2.0)
3. **[PhotoView 1.2.5](https://github.com/Baseflow/PhotoView/tree/v1.2.5)** (Apache License 2.0)
4. **[SlidingMenu with Android 10+ patch](https://github.com/tinelix/SlidingMenu)** (Apache License 2.0)
5. **[OkHttp 3.8.0](https://square.github.io/okhttp/)** (Apache License 2.0)
6. **[Twemojicon (Emojicon with Twemoji pack)](https://github.com/tinelix/twemojicon)** (Apache License 2.0)
7. **[Retro-ActionBar](https://github.com/tinelix/retro-actionbar)** (Apache License 2.0)
8. **[Retro-PopupMenu](https://github.com/tinelix/retro-popupmenu)** (Apache License 2.0)
9. **[SystemBarTint](https://github.com/jgilfelt/SystemBarTint)** (Apache License 2.0)
10. **[SwipeRefreshLayout Mod with Pull-to-Refresh](https://github.com/xyxyLiu/SwipeRefreshLayout)** (Apache License 2.0)
11. **[android-i18n-plurals](https://github.com/populov/android-i18n-plurals)** (X11 License)
12. **[Application Crash Reports 4.6.0](https://github.com/ACRA/acra/tree/acra-4.6.0)** (Apache License 2.0) \
_About our usage of ACRA in application see [issue #153](https://github.com/openvk/mobile-android-legacy/issues/153)._
14. **[Universal Image Loader](https://github.com/nostra13/Android-Universal-Image-Loader/tree/v1.9.5)** (Apache License 2.0)
15. **[NineOldAndroids](https://github.com/JakeWharton/NineOldAndroids)** (Apache License 2.0)
16. **[Apmem FlowLayout 1.8](https://github.com/ApmeM/android-flowlayout/tree/java-flowlayout-1.8)** (Apache License 2.0)

#### Design
1. **VK 3.x original resources** \
Author: [Gregory Klyushnikov](https://grishka.me)
2. **VK3-based themes:** Gray, Black
3. [**Holo Design Language**](https://web.archive.org/web/20130217132335/http://developer.android.com/design/index.html)
## Used Libraries
1. [Android Support Library v24 for 1.6+](https://developer.android.com/topic/libraries/support-library) (Apache License 2.0)
2. [HttpUrlWrapper](https://github.com/tinelix/httpurlwrapper) (Apache License 2.0)
3. [PhotoView 1.2.5](https://github.com/Baseflow/PhotoView/tree/v1.2.5) (Apache License 2.0)
4. [SlidingMenu with Android 10+ patch](https://github.com/tinelix/SlidingMenu) (Apache License 2.0)
5. [OkHttp 3.8.0](https://square.github.io/okhttp/) (Apache License 2.0)
6. [Twemojicon (Emojicon with Twemoji pack)](https://github.com/tinelix/twemojicon) (Apache License 2.0)
7. [FFmpeg 2.2.4](https://github.com/tinelix/ffmpeg-android-builder/tree/main/ffmpeg-2.2.4) with [builder](https://github.com/tinelix/ffmpeg-android-builder) (LGPLv3.0)
8. [Retro-ActionBar](https://github.com/tinelix/retro-actionbar) (Apache License 2.0)
9. [Retro-PopupMenu](https://github.com/tinelix/retro-popupmenu) (Apache License 2.0)
10. [SystemBarTint](https://github.com/jgilfelt/SystemBarTint) (Apache License 2.0)
11. [SwipeRefreshLayout Mod with classic PTR header](https://github.com/xyxyLiu/SwipeRefreshLayout) (Apache License 2.0)
12. [android-i18n-plurals](https://github.com/populov/android-i18n-plurals) (X11 License)
13. [Application Crash Reports 4.6.0](https://github.com/ACRA/acra/tree/acra-4.6.0) (Apache License 2.0)
14. [Universal Image Loader](https://github.com/nostra13/Android-Universal-Image-Loader/tree/v1.9.5) (Apache License 2.0)
15. [NineOldAndroids animation API](https://github.com/JakeWharton/NineOldAndroids) (Apache License 2.0)

## OpenVK Legacy License
[GNU Affero GPL v3.0](COPYING) or later version.

## Links
[OpenVK API docs](https://docs.openvk.su/openvk_engine/en/api/description/)\
[OpenVK API docs](https://docs.openvk.su/openvk_engine/api/description/)\
[OpenVK Mobile](https://openvk.uk/app)

<a href="https://codeberg.org/OpenVK/mobile-android-legacy">
Expand Down
76 changes: 45 additions & 31 deletions README_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,54 +13,68 @@ _Работает на OpenVK API._

## Скачать APK
* **через F-Droid**
* **[repo.openvk.uk](https://repo.openvk.uk/repo/)** (намного быстрее, зеркало ~~[без TLS](http://repo.openvk.co/repo/)~~ не оплачено)
* [f-droid.org](https://f-droid.org/packages/uk.openvk.android.legacy/)
* [izzysoft.de](https://apt.izzysoft.de/fdroid/index/apk/uk.openvk.android.legacy)
* [tinelix.ru](https://repo.tinelix.ru)
* **через [Telegram-канал](https://t.me/+nPLHBZqAsFlhYmIy)**
* **через [страницу релизов](https://github.com/openvk/mobile-android-legacy/releases/latest)**
* **через [NashStore](https://store.nashstore.ru/store/637cc36cfb3ed38835524503)** _(а почему бы и нет?)_
* **через [Trashbox](https://trashbox.ru/topics/164477/openvk-legacy)**
* **через [4PDA](https://4pda.to/forum/index.php?showtopic=1057695)**

## Сборка
Мы советуем использовать [Android Studio 3.1.2](https://developer.android.com/studio/archive) вместе с Java 7 для идеальной поддержки библиотек, разработанные для Android 2.1 Eclair и выше.
Мы советуем открывать проект в [Android Studio 3.1.2](https://developer.android.com/studio/archive) вместе с уже установленным Java 7 для идеальной поддержки библиотек, разработанные для Android 2.1 Eclair и выше.

Для обеспечения поддержки ненативных кодеков (Theora, VP8, Opus) используется версия **FFmpeg 2.2.4**.

Чтобы собрать их, вам понадобится:
+ **Дистрибутив GNU/Linux или WSL2** \
Да, на данный момент возможна сборка библиотек на Linux/WSL2, не исключаем её добавления под Windows/Cygwin и macOS.

Сборка проверена на Debian 8.11.0, может быть также возможна в последних версиях дистрибутивов.
+ **[Android NDK r8e](http://web.archive.org/web/20130501232214/http://developer.android.com/tools/sdk/ndk/index.html) и [Android NDK r10e](https://github.com/android/ndk/wiki/Unsupported-Downloads#r10e)** \
Если у вас уже есть, то вам нужно указать путь к NDK через переменную `ANDROID_NDK_HOME`.

Android NDK `r8e` настоятельно рекомендуется для предоставления поддержки FFmpeg в Android 2.2 и ниже.

Также в настройках проекта укажите путь к Android NDK r10e.
+ **Установленные зависимости** \
Посмотрите список пакетов для [Ubuntu/Debian/Linux Mint](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu) или [CentOS/Fedora](https://trac.ffmpeg.org/wiki/CompilationGuide/Centos)

+ **Скрипты, собирающие FFmpeg из исходных кодов** \
Запустите команду внутри репозитория OpenVK Legacy в терминале:
```sh
chmod +x ./build-ffmpeg.sh
ANDROID_NDK_R8E=[путь/к/ndk-r8e] ANDROID_NDK_R10E=[путь/к/ndk-r10e] ./build-ffmpeg.sh
```

Исходные коды библиотек FFmpeg, а также код сборщика под Android находятся в подмодуле `builder` [директории `./ndk-modules/ovkmplayer`](https://github.com/openvk/mobile-android-legacy/tree/main/ndk-modules/ovkmplayer).

**ВНИМАНИЕ!** После возникновения ошибки `java.util.zip.ZipException: invalid entry compressed size (expected [m] but got [n] bytes)` в задаче `:[package_name]:mockableAndroidJar`, при использовании Android SDK Build-tools 28 и выше необходимо очистить проект (Clean Project).

## Используемые компоненты приложения
**Большинство совместимых компонентов приложения, включая библиотеки, гарантированно работают в Android 2.1 и выше.**

Возможно, они вам пригодятся для разработки приложений с поддержкой очень старых версий Android, несмотря на проблемы с безопасностью и стабильностью в свежих версиях Android.

#### Библиотеки

1. **[Android Support Library v24](https://developer.android.com/topic/libraries/support-library)** (Apache License 2.0)
2. **[HttpUrlWrapper](https://github.com/tinelix/httpurlwrapper)** (Apache License 2.0)
3. **[PhotoView 1.2.5](https://github.com/Baseflow/PhotoView/tree/v1.2.5)** (Apache License 2.0)
4. **[SlidingMenu с патчем для Android 10+](https://github.com/tinelix/SlidingMenu)** (Apache License 2.0)
5. **[OkHttp 3.8.0](https://square.github.io/okhttp/)** (Apache License 2.0)
6. **[Twemojicon](https://github.com/tinelix/twemoji/tree/1.2)** (Apache License 2.0)
8. **[Retro-ActionBar](https://github.com/tinelix/retro-actionbar)** (Apache License 2.0)
9. **[Retro-PopupMenu](https://github.com/tinelix/retro-popupmenu)** (Apache License 2.0)
10. **[SystemBarTint](https://github.com/jgilfelt/SystemBarTint)** (Apache License 2.0)
11. **[Модификация SwipeRefreshLayout с Pull-to-Refresh](https://github.com/xyxyLiu/SwipeRefreshLayout)** (Apache License 2.0)
12. **[android-i18n-plurals](https://github.com/populov/android-i18n-plurals)** (X11 License)
13. **[Application Crash Reports 4.6.0](https://github.com/ACRA/acra/tree/acra-4.6.0)** (Apache License 2.0) \
_По поводу применения ACRA в приложении смотрите [issue №153](https://github.com/openvk/mobile-android-legacy/issues/153)._
15. **[Universal Image Loader](https://github.com/nostra13/Android-Universal-Image-Loader/tree/v1.9.5)** (Apache License 2.0)
16. **[NineOldAndroids animation API](https://github.com/JakeWharton/NineOldAndroids)** (Apache License 2.0)

#### Оформление
1. **Оригинальные ресурсы ВКонтакте 3.x** \
Автор: [Григорий Клюшников](https://grishka.me)
2. **Темы оформления, основанные на ВК3:** "Серая" и "Черная"
3. [**Язык дизайна Holo**](https://web.archive.org/web/20130217132335/http://developer.android.com/design/index.html)
## Используемые библиотеки
1. [Android Support Library v24 for 1.6+](https://developer.android.com/topic/libraries/support-library) (Apache License 2.0)
2. [HttpUrlWrapper](https://github.com/tinelix/httpurlwrapper) (Apache License 2.0)
3. [PhotoView 1.2.5](https://github.com/Baseflow/PhotoView/tree/v1.2.5) (Apache License 2.0)
4. [SlidingMenu with Android 10+ patch](https://github.com/tinelix/SlidingMenu) (Apache License 2.0)
5. [OkHttp 3.8.0](https://square.github.io/okhttp/) (Apache License 2.0)
6. [Twemojicon (Emojicon с пакетом Twemoji)](https://github.com/rockerhieu/emojicon/tree/1.2) (Apache License 2.0)
7. [FFmpeg 2.2.4](https://github.com/tinelix/ffmpeg-android-builder/tree/ffmpeg-2.2.4) вместе со [сборщиком](https://github.com/tinelix/ffmpeg-android-builder/tree/42c67d80bc924c9709a7648e2d12f04ddf43b32b) (LGPLv3.0)
8. [ijkplayer 0.8.2](https://github.com/bilibili/ijkplayer/tree/k0.6.2) (LGPL 2.1+)
9. [Retro-ActionBar](https://github.com/tinelix/retro-actionbar) (Apache License 2.0)
10. [Retro-PopupMenu](https://github.com/tinelix/retro-popupmenu) (Apache License 2.0)
11. [SystemBarTint](https://github.com/jgilfelt/SystemBarTint) (Apache License 2.0)
12. [Модификация SwipeRefreshLayout с классическим PTR](https://github.com/xyxyLiu/SwipeRefreshLayout) (Apache License 2.0)
13. [android-i18n-plurals](https://github.com/populov/android-i18n-plurals) (X11 License)
14. [Application Crash Reports 4.6.0](https://github.com/ACRA/acra/tree/acra-4.6.0) (Apache License 2.0)
15. [Universal Image Loader](https://github.com/nostra13/Android-Universal-Image-Loader/tree/v1.9.5) (Apache License 2.0)
16. [NineOldAndroids animation API](https://github.com/JakeWharton/NineOldAndroids) (Apache License 2.0)

## Лицензия OpenVK Legacy
[GNU Affero GPL v3.0](COPYING) или более поздней версии.

## Ссылки
[Документация по OpenVK API](https://docs.openvk.su/openvk_engine/ru/api/description/)\
[Документация по OpenVK API](https://docs.openvk.su/openvk_engine/api/description/)\
[OpenVK Mobile](https://openvk.uk/app)

<a href="https://codeberg.org/OpenVK/mobile-android-legacy">
Expand Down
Loading

0 comments on commit 5cdd572

Please sign in to comment.