Difference between revisions of "Android Programming/ru"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{Android programming}}
 
{{Android programming}}
  
See also [[Custom Drawn Interface/Android]]
+
Смотрите также [[Custom Drawn Interface/Android]]
  
 
__TOC__
 
__TOC__
  
Knowing general Android programming can be very useful to help developing the Lazarus Android Interface.
+
Общие знания о программировании под Android могут очень помочь в разработке интерфейса Lazarus для Android.
  
==How to...==
+
==Как...==
  
===Build the NDK OpenGL example===
+
===Построить NDK (Android Native Development Kit) OpenGL ===
  
Just follow these steps:
+
Просто выполните следующие действия:
  
'''Step 1''' - Download and install the Android NDK, Android SDK and Ant. More information here: [[Android_Interface/Using_the_Android_SDK%2C_Emulator_and_Phones]]
+
'''Шаг 1''' - Скачайте и установите Android NDK, Android SDK и Ant. Больше информации тут: [[Android_Interface/Using_the_Android_SDK%2C_Emulator_and_Phones/ru]]
  
'''Step 2''' - Install the pre-compiled FPC cross-compiler. Instructions here: [[Android_Interface#Using_the_pre-compiled_compiler]]
+
'''Шаг 2''' - Установите pre-compiled FPC cross-compiler. Инструкции здесь: [[Android_Interface#Using_the_pre-compiled_compiler]]
  
'''Step 3''' - Download the latest lazarus-ccr sourceforge code:
+
'''Шаг 3''' - Загрузите последнюю версию lazarus-ccr sourceforge code:
  
 
  svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr lazarus-ccr
 
  svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr lazarus-ccr
  
or if you think it is too big you can download just the folder lazarus-ccr/bindings/android-ndk
+
или если вы думаете что это слишком много, вы можете скачать только каталог lazarus-ccr/bindings/android-ndk
  
'''Step 4''' - Building the Pascal Library
+
'''Шаг 4''' - Постройте Pascal Library
  
Open the project lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi
+
Откройте проект lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi
  
Go to Project->Project Options->Paths and where is written "Libraries -Fl" you should see this value:
+
Откройте пункт меню Project->Project Options->Paths и где написано "Libraries -Fl" вы должны увидеть следующее значение:
  
 
  /home/felipe/Programas/android-ndk-r5/platforms/android-9/arch-arm/usr/lib
 
  /home/felipe/Programas/android-ndk-r5/platforms/android-9/arch-arm/usr/lib
  
Change it to the correct path in your system which points to the NDK and to the library folder for your minimal required Android API Level
+
Измените его на правильный путь, который указывает на библиотеку NDK с минимальной необходимой версией Android API Level
  
Now build the project using Lazarus.
+
Теперь постройте проект используя Lazarus.
  
'''Step 5''' - Configuring the build environment
+
'''Шаг 5''' - Настройка среды сборки
  
Open the file opengltest/local.properties and in this line:
+
Откройте файл opengltest/local.properties и в строке:
  
 
  sdk.dir=/home/felipe/Programas/android-sdk-linux
 
  sdk.dir=/home/felipe/Programas/android-sdk-linux
  
Change this to point to your SDK location
+
Измените этот путь на местоположение SDK
 +
 +
'''Шаг 6''' - Постройка APK
  
'''Step 6''' - Buildings the APK
+
Откройте консоль и введите следущие команды:
  
Open a terminal and type these commands:
+
cd lazarus-ccr/bindings/ndk/examples/opengltest/android
 +
ant debug
  
cd lazarus-ccr/bindings/ndk/examples/opengltest/android
+
Файл APK будет помещен в opengltest/android/bin/
ant debug
 
  
The APK file will be placed in opengltest/android/bin/
+
'''Шаг 7''' - Установка APK
  
'''Step 7''' - Install the APK
+
Если на этом шаге вы получите сообщение об ошибке прав доступа, читайте: [[Android_Interface/Using_the_Android_SDK%2C_Emulator_and_Phones#Recognition_of_devices_under_Linux]]
  
In this step if you get error messages about permissions read: [[Android_Interface/Using_the_Android_SDK%2C_Emulator_and_Phones#Recognition_of_devices_under_Linux]]
+
Команда, чтобы установить APK на телефоне:
 
 
The command to install our APK in the phone is:
 
  
 
  cd opengltest/android
 
  cd opengltest/android
Line 64: Line 64:
 
  Success
 
  Success
  
If you get an error message that it is already installed you can install with this command:
+
Если вы получили сообщение об ошибке, что APK уже установлен, вы можете установить его с помощью команды:
  
 
  ~/Programas/android-sdk-linux/platform-tools/adb uninstall com.pascal.opengltest
 
  ~/Programas/android-sdk-linux/platform-tools/adb uninstall com.pascal.opengltest
  
And then you can run adb logcat to see what the log says while you start it in the phone via its newly added icon:
+
После можно запустить ''adb logcat'' чтобы увидеть журнал, в то время как вы запустите его в телефон через недавно добавленную иконку:
  
 
  ~/Programas/android-sdk-linux/platform-tools/adb logcat
 
  ~/Programas/android-sdk-linux/platform-tools/adb logcat
  
===Read the screen metrics===
+
===Получить параметры экрана===
  
First fill a TDisplayMetrics with the correct info:
+
Вначале нужно заполнить TDisplayMetrics:
  
<delphi>
+
<syntaxhighlight lang=pascal>
 
uses androidutil;
 
uses androidutil;
  
Line 91: Line 91:
 
   MyDisplayMetrics := TDisplayMetrics.Create;
 
   MyDisplayMetrics := TDisplayMetrics.Create;
 
   Activity.getWindowManager().getDefaultDisplay().getMetrics(MyDisplayMetrics);
 
   Activity.getWindowManager().getDefaultDisplay().getMetrics(MyDisplayMetrics);
</delphi>
+
</syntaxhighlight>
  
And then you can read it from the TDisplayMetrics:
+
После вы можете получить информацию о дисплее из TDisplayMetrics:
  
<delphi>
+
<syntaxhighlight lang=pascal>
 
   lHeight := MyDisplayMetrics.heightPixels();
 
   lHeight := MyDisplayMetrics.heightPixels();
 
   lWidth := MyDisplayMetrics.widthPixels();
 
   lWidth := MyDisplayMetrics.widthPixels();
Line 104: Line 104:
 
   ldensityDpi := MyDisplayMetrics.densityDpi();
 
   ldensityDpi := MyDisplayMetrics.densityDpi();
 
   scaledDensity := MyDisplayMetrics.scaledDensity();
 
   scaledDensity := MyDisplayMetrics.scaledDensity();
</delphi>
+
</syntaxhighlight>
  
Note that lots of devices lie about the xdpi and ydpi, so don't trust the lScreenSize calculated above. Smartphones might report even 10 inches of screen size, while the correct is around 4.
+
Обратите внимание, что многие устройства врут о xdpi и ydpi, поэтому не стоит доверять lScreenSize, рассчитанному выше. Смартфоны могут сообщить о размере экрана 10 дюймов, хотя их настоящий размер может быть около 4.
  
==Details about Android devices==
+
==Подробная информация об устройствах с Android==
  
Since there are so many Android devices, it can be useful to keep track of some information about them. See also in the wikipedia Comparison of Android Devices [http://en.wikipedia.org/wiki/Comparison_of_Android_devices] and details about the processors in [https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements].
+
Поскольку существует так много Android устройств, эта информация может быть полезно для отслеживания информации о них. Смотрите также в википедии [http://ru.wikipedia.org/wiki/Сравнение_устройств_с_Android Сравнение устройств с Android] и подробную информацию о процессорах в [https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements Android#System_Requirements].
  
===Smartphones===
+
===Смартфоны===
  
 
{| BORDER="1" CELLSPACING="0"
 
{| BORDER="1" CELLSPACING="0"
!COLSPAN="1" STYLE="background:#ffdead;"|'''Manufacturer'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Производитель'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Model'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Модель'''
 
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android API Name (Build.Model)'''
 
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android API Name (Build.Model)'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Processor'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Процессор'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android version'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Версия Android'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Multi-touch'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Мультитач'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Comments'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Комментарий'''
 
|---
 
|---
|HTC||Wildfire||HTC Wildfire||armv6||2.1=>2.2||Yes||-
+
|HTC||Wildfire||HTC Wildfire||armv6||2.1=>2.2||Да||-
 
|---
 
|---
|Sony Erricson||Xperia X10||X10i||armv7||1.6=>2.1||No||-
+
|Sony Erricson||Xperia X10||X10i||armv7||1.6=>2.1||Нет||-
 
|}
 
|}
  
===Tablets===
+
===Планшеты===
  
 
{| BORDER="1" CELLSPACING="0"
 
{| BORDER="1" CELLSPACING="0"
!COLSPAN="1" STYLE="background:#ffdead;"|'''Manufacturer'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Производитель'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Model'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Модель'''
 
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android API Name (Build.Model)'''
 
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android API Name (Build.Model)'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Processor'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Процессор'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android version'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Версия Android'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Multi-touch'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Мультитач'''
!COLSPAN="1" STYLE="background:#ffdead;"|'''Comments'''
+
!COLSPAN="1" STYLE="background:#ffdead;"|'''Комментарий'''
 
|---
 
|---
 
|Toshiba||Folio 100 Tablet||TOSHIBA_FOLIO_AND_A||armv7||2.2||Yes||-
 
|Toshiba||Folio 100 Tablet||TOSHIBA_FOLIO_AND_A||armv7||2.2||Yes||-
 
|}
 
|}
  
===List of devices ordered by processor compatibility (ARMv6 vs ARMv7)===
+
===Списки устройств сгруппированные по процессорам (ARMv6 vs ARMv7)===
  
'''List of ARMv7 devices:'''
+
'''Список устройств на ARMv7:'''
  
 
*Advent Vega (P10AN01)  
 
*Advent Vega (P10AN01)  
Line 183: Line 183:
 
*Samsung Nexus S
 
*Samsung Nexus S
  
'''List of ARMv6 processors:'''
+
'''Список устройств на ARMv6:'''
  
 
*Android SDK emulator  
 
*Android SDK emulator  
Line 240: Line 240:
 
*ZTE Blade
 
*ZTE Blade
  
==Creating a new Java Android Application==
+
===Воспроизведение Аудио и Видео на телефонах===
 +
 
 +
Каждый телефон поставляется со своим набором кодеков, поэтому на разных телефонах родной Media Player может воспроизводить разные форматы. Ниже приведена таблица, показывающая, какие форматы воспроизводит Media Player на каждом телефоне:
 +
 
 +
{| BORDER="1" CELLSPACING="0"
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''Телефон'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''Android'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''webm - VP8'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''m4v - H.264'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''ogv - Theora'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''mp4 - H.264'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''mov - H.264'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''avi - RLE'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''mpg - MPEG-1'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''wmv - WM9'''
 +
!COLSPAN="1" STYLE="background:#ffdead;"|'''3gp - MPEG-4'''
 +
|----
 +
|Emulator||1.6||x||x||x||x||x||x||x||x||OK
 +
|----
 +
|Emulator||2.1||x||x||x||x||x||x||x||x||OK
 +
|----
 +
|Nexus One||2.2||x||OK||x||OK||x||x||x||x||OK
 +
|----
 +
|HTC Desire||1.6||x||OK||x||OK||x||x||x||OK||OK
 +
|----
 +
|Toshiba Folio 100||2.2||x||OK||x||OK||x||x||x||OK||OK
 +
|----
 +
|Xperia X10||2.1||x||OK||x||x||x||x||x||OK||OK
 +
|----
 +
|Xperia X8||2.2||x||OK||x||x||x||x||x||x||OK
 +
|----
 +
|HTC Wildfire||2.1||x||OK||x||x||x||x||x||x||OK
 +
|----
 +
|HTC Desire HD||2.2||x||OK||x||OK||x||x||x||x||OK
 +
|----
 +
|Galaxy Tab||2.2||x||OK||x||x||x||x||x||x||OK
 +
|----
 +
|myPhone A210||1.6||x||OK||x||x||x||x||x||x||OK
 +
|----
 +
|Motorola Milestone||2.1||x||OK||x||x||x||x||x||OK||?
 +
|----
 +
|Milestone 2||2.2||x||OK||x||x||x||x||x||только звук||OK
 +
|}
  
This info can be useful for helping implement LCL-CustomDrawn-Android
+
==Файловая система Android==
  
Generic instructions here: http://developer.android.com/guide/developing/other-ide.html
+
Рекомендуется использовать getApplicationContext().getFilesDir() чтобы получить путь к каталогу для хранения данных приложения. В HTC Wildfire эта функция возвращает /data/data/<package name>
  
===Showing / Hiding the virtual keyboard===
+
Библиотеки приложения находятся в /data/data/<package>/lib
  
See here: http://android-codes-examples.blogspot.com/2011/11/show-or-hide-soft-keyboard-on-opening.html
+
В папке /data/data/<package name> есть разрешение на чтение и запись, можно создавать новые файлы и даже запускать их.
  
To show it:
+
==Создание нового Java Приложения для Android==
  
 +
Эта информация может быть полезна для реализации LCL-CustomDrawn-Android
 +
 +
Общие инструкции здесь: [http://developer.android.com/tools/projects/projects-cmdline.html Managing Projects from the Command Line]
 +
 +
===Показать / Скрыть виртуальную клавиатуру===
 +
 +
Чтобы показать:
 +
 +
<syntaxhighlight lang="java">
 
  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 
  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 
  imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
 
  imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
 +
</syntaxhighlight>
  
and for hiding the keyboard:
+
и чтобы спрятать клавиатуру:
  
 +
<syntaxhighlight lang="java">
 
  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 
  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 
  imm.hideSoftInputFromWindow(singleedittext.getWindowToken(),0);
 
  imm.hideSoftInputFromWindow(singleedittext.getWindowToken(),0);
 +
</syntaxhighlight>
 +
 +
==Ссылки==
 +
 +
* [http://developer.android.com/tools/projects/projects-cmdline.html Managing Projects from the Command Line]
 +
* [http://android-codes-examples.blogspot.com/2011/11/show-or-hide-soft-keyboard-on-opening.html Show or Hide soft keyboard on opening a dialog or activity in android]
  
==References==
 
  
* http://developer.android.com/guide/developing/other-ide.html
+
{{AutoCategory}}
 +
[[Category:Android/ru]]
 +
[[Category:Custom Drawn/ru]]

Latest revision as of 07:22, 9 February 2020

English (en) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

Смотрите также Custom Drawn Interface/Android

Общие знания о программировании под Android могут очень помочь в разработке интерфейса Lazarus для Android.

Как...

Построить NDK (Android Native Development Kit) OpenGL

Просто выполните следующие действия:

Шаг 1 - Скачайте и установите Android NDK, Android SDK и Ant. Больше информации тут: Android_Interface/Using_the_Android_SDK,_Emulator_and_Phones/ru

Шаг 2 - Установите pre-compiled FPC cross-compiler. Инструкции здесь: Android_Interface#Using_the_pre-compiled_compiler

Шаг 3 - Загрузите последнюю версию lazarus-ccr sourceforge code:

svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr lazarus-ccr

или если вы думаете что это слишком много, вы можете скачать только каталог lazarus-ccr/bindings/android-ndk

Шаг 4 - Постройте Pascal Library

Откройте проект lazarus-ccr/bindings/android-ndk/examples/opengltest/opengltest.lpi

Откройте пункт меню Project->Project Options->Paths и где написано "Libraries -Fl" вы должны увидеть следующее значение:

/home/felipe/Programas/android-ndk-r5/platforms/android-9/arch-arm/usr/lib

Измените его на правильный путь, который указывает на библиотеку NDK с минимальной необходимой версией Android API Level

Теперь постройте проект используя Lazarus.

Шаг 5 - Настройка среды сборки

Откройте файл opengltest/local.properties и в строке:

sdk.dir=/home/felipe/Programas/android-sdk-linux

Измените этот путь на местоположение SDK

Шаг 6 - Постройка APK

Откройте консоль и введите следущие команды:

cd lazarus-ccr/bindings/ndk/examples/opengltest/android
ant debug

Файл APK будет помещен в opengltest/android/bin/

Шаг 7 - Установка APK

Если на этом шаге вы получите сообщение об ошибке прав доступа, читайте: Android_Interface/Using_the_Android_SDK,_Emulator_and_Phones#Recognition_of_devices_under_Linux

Команда, чтобы установить APK на телефоне:

cd opengltest/android
~/Programas/android-sdk-linux/platform-tools/adb install bin/OpenGLNDKTest-debug.apk 
2395 KB/s (107299 bytes in 0.043s)
       pkg: /data/local/tmp/OpenGLNDKTest-debug.apk
Success

Если вы получили сообщение об ошибке, что APK уже установлен, вы можете установить его с помощью команды:

~/Programas/android-sdk-linux/platform-tools/adb uninstall com.pascal.opengltest

После можно запустить adb logcat чтобы увидеть журнал, в то время как вы запустите его в телефон через недавно добавленную иконку:

~/Programas/android-sdk-linux/platform-tools/adb logcat

Получить параметры экрана

Вначале нужно заполнить TDisplayMetrics:

uses androidutil;

var
  MyDisplayMetrics: TDisplayMetrics;
  Str: string;
  //
  lHeight, lWidth: Integer;
  xdpi, ydpi, lScreenSize: Single;
begin
  // ..
  // Objects

  MyDisplayMetrics := TDisplayMetrics.Create;
  Activity.getWindowManager().getDefaultDisplay().getMetrics(MyDisplayMetrics);

После вы можете получить информацию о дисплее из TDisplayMetrics:

  lHeight := MyDisplayMetrics.heightPixels();
  lWidth := MyDisplayMetrics.widthPixels();
  xdpi := MyDisplayMetrics.xdpi();
  ydpi := MyDisplayMetrics.ydpi();
  lScreenSize := sqrt(sqr(lHeight / ydpi) + sqr(lWidth / xdpi));
  ldensity := MyDisplayMetrics.density();
  ldensityDpi := MyDisplayMetrics.densityDpi();
  scaledDensity := MyDisplayMetrics.scaledDensity();

Обратите внимание, что многие устройства врут о xdpi и ydpi, поэтому не стоит доверять lScreenSize, рассчитанному выше. Смартфоны могут сообщить о размере экрана 10 дюймов, хотя их настоящий размер может быть около 4.

Подробная информация об устройствах с Android

Поскольку существует так много Android устройств, эта информация может быть полезно для отслеживания информации о них. Смотрите также в википедии Сравнение устройств с Android и подробную информацию о процессорах в Android#System_Requirements.

Смартфоны

Производитель Модель Android API Name (Build.Model) Процессор Версия Android Мультитач Комментарий
HTC Wildfire HTC Wildfire armv6 2.1=>2.2 Да -
Sony Erricson Xperia X10 X10i armv7 1.6=>2.1 Нет -

Планшеты

Производитель Модель Android API Name (Build.Model) Процессор Версия Android Мультитач Комментарий
Toshiba Folio 100 Tablet TOSHIBA_FOLIO_AND_A armv7 2.2 Yes -

Списки устройств сгруппированные по процессорам (ARMv6 vs ARMv7)

Список устройств на ARMv7:

  • Advent Vega (P10AN01)
  • Dell Streak, Streak 7
  • HTC Desire
  • HTC Desire Z (T-Mobile G2)
  • HTC Desire HD
  • HTC Droid Incredible
  • HTC EVO 4G, EVO Shift 4G
  • HTC Glacier (T-Mobile myTouch 4G)
  • HTC Inspire 4G
  • HTC Nexus One
  • HTC Thunderbolt 4G
  • Huawei Ideos S7
  • LG Optimus Z
  • Motorola Atrix 4G
  • Motorola Bravo
  • Motorola Cliq 2 - untested
  • Motorola Defy
  • Motorola Droid 2, Droid 2 Global
  • Motorola Droid Pro (Motorola PRO)
  • Motorola Droid X
  • Motorola Xoom
  • POV Mobii Tegra Tablet
  • Samsung Continuum (i400)
  • Samsung Galaxy S (i9000, Captivate, Fascinate, Vibrant, Epic 4G)
  • Samsung Galaxy Tab
  • Sharp IS03
  • Sony Ericsson Xperia X10
  • Toshiba AS100
  • Viewsonic gTablet
  • Acer Liquid E
  • Acer Liquid (Liquid A1)
  • Archos 101 Internet Tablet
  • Motorola Charm
  • Motorola Droid (Milestone)
  • Samsung Galaxy S 4G
  • Samsung Nexus S

Список устройств на ARMv6:

  • Android SDK emulator
  • Asus Garmin nuvifone A50 (T-Mobile Garminfone)
  • Augen GENTouch 78 Tablet
  • Coby Kyros Internet Tablet (MID7015)
  • Geeksphone One, Geeksphone Zero
  • HTC Aria
  • HTC ChaCha
  • HTC Dream (T-Mobile G1, Android Dev Phone 1)
  • HTC Droid Eris
  • HTC Espresso (T-Mobile myTouch 3G Slide)
  • HTC Hero (T-Mobile G2 Touch)
  • HTC Legend
  • HTC Magic (T-Mobile myTouch 3G, T-Mobile G1 Touch)
  • HTC Salsa
  • HTC Tattoo
  • HTC Wildfire
  • Huawei Ascend
  • Huawei Ideos U8150-B (T-Mobile Comet)
  • Huawei U8110 (T-Mobile Pulse Mini)
  • Huawei U8230
  • LG Ally (Apex) (LG VS740)
  • LG GW620 (Eve, InTouch Max, LinkMe)
  • LG Optimus, Optimus M, Optimus T, Optimus S, Optimus V
  • LG Vortex
  • LG P500
  • MAG iMiTO iM7
  • vMAG iMiTO iM7S
  • Motorola Backflip
  • Motorola Citrus
  • Motorola Cliq (MB200)
  • Motorola Dext
  • Motorola Devour
  • Motorola i1
  • Motorola Spice XT300
  • Motorola Quench XT5 XT502
  • Pandigital Novel
  • Samsung GT-S5570 Galaxy Mini
  • Samsung i5500 Galaxy 5 (Corby)
  • Samsung i5700 Galaxy Portal (Spica)
  • Samsung i5800 Galaxy 3
  • Samsung i7500 Galaxy
  • Samsung Intercept
  • Samsung M900 Moment
  • Samsung S5830 Galaxy Ace
  • Samsung Transform
  • Sanyo ZIO M6000
  • Sony Ericsson Xperia X8
  • Sony Ericsson Xperia X10 Mini
  • Sony Ericsson Xperia X10 Mini Pro
  • Superpad 10.2" Tablet PC
  • Viewsonic ViewPad 7 Tablet
  • Velocity Micro T103 Cruz tablet
  • Vodafone 845
  • ZTE Blade

Воспроизведение Аудио и Видео на телефонах

Каждый телефон поставляется со своим набором кодеков, поэтому на разных телефонах родной Media Player может воспроизводить разные форматы. Ниже приведена таблица, показывающая, какие форматы воспроизводит Media Player на каждом телефоне:

Телефон Android webm - VP8 m4v - H.264 ogv - Theora mp4 - H.264 mov - H.264 avi - RLE mpg - MPEG-1 wmv - WM9 3gp - MPEG-4
Emulator 1.6 x x x x x x x x OK
Emulator 2.1 x x x x x x x x OK
Nexus One 2.2 x OK x OK x x x x OK
HTC Desire 1.6 x OK x OK x x x OK OK
Toshiba Folio 100 2.2 x OK x OK x x x OK OK
Xperia X10 2.1 x OK x x x x x OK OK
Xperia X8 2.2 x OK x x x x x x OK
HTC Wildfire 2.1 x OK x x x x x x OK
HTC Desire HD 2.2 x OK x OK x x x x OK
Galaxy Tab 2.2 x OK x x x x x x OK
myPhone A210 1.6 x OK x x x x x x OK
Motorola Milestone 2.1 x OK x x x x x OK ?
Milestone 2 2.2 x OK x x x x x только звук OK

Файловая система Android

Рекомендуется использовать getApplicationContext().getFilesDir() чтобы получить путь к каталогу для хранения данных приложения. В HTC Wildfire эта функция возвращает /data/data/<package name>

Библиотеки приложения находятся в /data/data/<package>/lib

В папке /data/data/<package name> есть разрешение на чтение и запись, можно создавать новые файлы и даже запускать их.

Создание нового Java Приложения для Android

Эта информация может быть полезна для реализации LCL-CustomDrawn-Android

Общие инструкции здесь: Managing Projects from the Command Line

Показать / Скрыть виртуальную клавиатуру

Чтобы показать:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

и чтобы спрятать клавиатуру:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.hideSoftInputFromWindow(singleedittext.getWindowToken(),0);

Ссылки