Привет разработчикам! Надеюсь вы уже слышали о предварительной версии Android SDK 1.5, которая недавно вышла. В ней появились новые возможности, но не торопитесь, некоторым из вас нужно будет исправить свои программы перед тем как полностью перейти на 1.5. Мы провели достаточно большое тестирование популярных программ в Андроид маркете и оказалось, что некоторые из них используют не стандартные техники, которые приводят к падению программ или странному поведению в Андроид 1.5. Ниже вы найдете пять советов/техник, руководствуясь которыми вы можете избежать некорректной работы ваших программ в новом SDK. Если вы написали программу для Android 1.0 или 1.5 SDK, то вам нужно более внимательнее с ними ознакомится.

Техника 1: Избегайте использования внутренних API

Даже когда мы настойчиво советовали не использовать их, некоторые разработчики все таки решили использовать не поддерживаемые или внутренние API. К примеру, многие используют внутренний интерфейс управления яркостью и API для переключения состояния блютуса, доступные в 1.0 и 1.1. Теперь этот баг исправлен в 1.5, который позволял программам обращаться к этим API, без использования разрешения. В результате, программы использовавшие их не будут работать в 1.5. Есть и другие изменения, так что если вы использовали другие не документированные возможности, вам необходимо обновить свои программы и отказаться использовать этих API. Даже если они будут работать на Android 1.5, то есть шанс что они перестанут в будущих обновлениях. (Немного о хорошем, так как программы типа «фонарик», очень популярны, то специально для этого мы добавили поле «screenBrightness» в WindowManager.LayoutParams.)

Техника 2. Избегайте прямого изменения настроек

Хорошо, нас самом деле это не так уж плохо, так как изменения поведения были сделаны в самом андроиде. Мы сделали это потому что некоторые разработчики использовали их не очень хорошо, например, некоторые программы без оповещения пользователя, «в тихую» включали и выключали GPS, или даже включать передачу данных в роуминге.

В результате программы больше не могут напрямую изменять системные настройки, даже если раньше у них был для этого разрешения. К примеру, теперь нельзя напрямую включать и выключать GPS. Эти программы не будут выдавать ошибку, но на запрос API просто не будет ничего происходить. Вместо этого они должны будут вызывать специальный Intent для запуска соответствующего окна настроек, что бы пользователь изменял настройки вручную. Более подробно можно ознакомится с классом android.provider.Settings.Secure, который вы можете найти в документации к SDK 1.5. Хочу заметить, что нововедение относится только к настройкам которые описаны в классе Settings.Secure, остальные же будут продолжать работать так же как и в 1.1.

Техника 3. Избегайте использования большого количества планировок (Layouts)

Согласно изменениям в отрисовке View, большая глубина (больше 10 уровней) или большое количество (больше 30 всего) иерархий View в планировках (layouts), приводят к краху программы. Всегда был риск к чрезмерно сложным лэйаутам(layouts), но вы можете думать об Android 1.5, как об улучшении 1.1 в плане увеличения этой проблемы. Большинству разработчиков не стоит об этом беспокоится, но если ваша программа содержит очень много лэйаутов, вам нужно будет посадить ее на диету. Вы можете упростить свою планировку с помощью более продвинутых классов, например, FrameLayout и TableLayout

Техника 4. Учитывайте все виды устройств

Android 1.5 включает поддержку программных клавиатур, и в скором времени появится много оборудования, которые будут работать на Андроид ОС, но не будут иметь физической клавиатуры. Если ваша программа подразумевает присутствие физической клавиатуры (например, если вы создали свой элемент View который обрабатывает события от клавиатуры) вы должны быть уверенными, что она будет корректно работать в устройствах только с программной клавиатурой. Для подробностей, следите за официальным блогом, в котором скоро появится информация по перехвату событий от программных клавиатур.

Техника 5. Избегайте случайные повороты.

Устройства работающие на Андроид 1.5 и более новых версиях, позволяют автоматически поворачивать экран в зависимости от ориентации устройства. Некоторые 1.5 устройства будут делать это по умолчанию, на всех остальных будет включаться через настройки пользователем. Это может иногда привести к непредсказуемому поведению от программ которые используют свое собственное изменение ориентации (с использованием акселерометра или чего либо еще). Это часто случается когда приложение считает что поворот может произойти, только когда физическая клавиатура выдвинута. Если в устройстве нет физической клавиатуры, то изменение ориентации экрана, никогда не произойдет, а это уже программная ошибка. Разработчики должны быть уверенными, что их программы смогут корректно обработать изменение ориентации в любой момент.

Так же, программы которые используют акселерометр на прямую для изменения ориентации экрана иногда совпадает с системными изменениями, что конечно же дает положительный результат. И наконец, некоторые используют акселерометр для определения того что устройство трясут и не устанавливают положение только в портретный или ландшафтный режимы, в результате ориентация меняется между ними. Это может раздражать пользователя. (Вы можете заблокировать ориентацию экрана в портретный или ландшафтный режимы указав атрибут 'android:screenOrientation' в своем файле манифеста AndroidManifest.xml.)

Оригинал

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong
by vovkab Нет комментариев »
Рубрики: Статьи | Метки: , ,

Оставить комментарий

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