ОРГАНІЗАЦІЯ ВИХІДНОЇ КОДА JAVA – Android

&nbsp

Була викладена базова інформація про комплект для розробки ПЗ під Android (Android SDK) Ми звузили фокус проблеми, детально розглянувши один з найбільш популярних інструментів для розробки під Android – Інтегроване середовище розробки Eclipse Зробимо ще один крок і вивчимо, як у проекті організовується код

Ще раз підкреслимо, що проект – це робочий простір, виділене для створення цілісного розгортаного артефакту У широкому сенсі в світі Java артефакт може являти собою всього лише бібліотеку (Файл JAR, який не може запускатися сам по собі, але реалізує певний специфічний функціонал) З іншого боку, артефакт може бути розгортати веб-додатком або додатком для ПК, яке викликається подвійним клацанням на ярлику на Робочому столі

У контексті Android артефакт – це, як правило, одиночна служба, яку можна запустити: ContentProvider, Service або Activity Постачальник вмісту, який використовується окремої активністю, виразно може починати свій життєвий цикл як частина проекту активності Якщо виникне ситуація, в якій їм повинна буде скористатися інша активність, то, можливо, буде потрібно провести рефакторинг і виділити цей постачальник вмісту у власний проект

Як правило, компілятор Java очікує, що дерева каталогів міститимуть файли з вихідним кодом Java (JAVA), до яких компілятор застосовує синтаксичний розбір, і виконавчі файли (CLASS), що видаються в якості висновку Хоча це і не потрібно, але керувати проектом стає набагато простіше, якщо у дерев, що містять файли першого і другого виду, будуть різні коріння, в якості яких зазвичай виступають каталоги, звані відповідно src і bin

У проекті Android присутні ще два дуже важливих дерева каталогів – res і gen У res містяться визначення статичних ресурсів: квітів, константних рядків, компонування і т д Інструменти Android виконують попередню обробку цих визначень, перетворюючи їх у значно оптимізовані уявлення і вихідний код Java, через який код додатку посилається на ці подання Автоматично згенерований код, а також код, створений для обєктів AIDL поміщається в каталозі gen Система компілює вміст обох каталогів, і отриманий в результаті матеріал поміщає в bin

Вихідний код вашої програми знаходиться в каталозі src Як було зазначено, потрібно помістити весь код в пакет, імя якого є похідним від доменного імені власника коду Припустимо, наприклад, що ви – розробник у величезній фірмі, сайт якої називається awesome-androidnet І ось вам доручено написати для voracious-carriercom програму, яка видавала б прогноз погоди Ймовірно, ви помістіть весь ваш код в пакет com voraci ouscarri er weatherprediction або, наприклад, comvoracious_carrierweather_prediction Хоча символ – цілком можна використовувати в доменних іменах служби DNS, він не допускається в назвах пакетів Java Інтерфейс користувача для цього грандіозного додатку може перебувати в пакеті comvoraciouscarrier weatherpredi ction ui, а модель програми – в com voraci ouscarri er weatherpredi ction futureweather

Заглянувши в каталог src проекту, ви виявите в ньому підкаталог, який називається com Він, у свою чергу, містить каталог voraciouscarrier і т д Дерево вихідних каталогів структурно відображає дерево пакетів Компілятор Java очікує, що каталоги будуть збудовані саме таким чином, і, можливо, не зможе скомпілювати ваш код, якщо він має іншу структуру

Нарешті, коли ваш постачальник вмісту Futureweather виявляється цінний сам по собі, ви вирішуєте витягти його і використовувати в новому проекті з таким простором імен пакета, яке не обмежується назвою додатки, де спочатку створювався цей постачальник Виконання такої операції вручну – це тихий жах Потрібно буде створити нову структуру каталогів, правильно розмістити файли в даній структурі, виправити назви пакетів, що знаходяться на початку імені кожного файлу з початковим кодом, і, нарешті, виправити посилання на всі ті елементи, які ви перемістили

Тут вам дуже знадобляться інструменти рефакторинга, наявні в Eclipse Усього кілька клацань кнопкою миші – і можна створити новий проект для поддерева, яке вже є автономним, вирізати код постачальника вмісту і вставити його в нове дерево, а потім перейменувати пакети так, як потрібно Eclipse підправить більшу частину моментів, в тому числі змінилися посилання

Необхідно обмовитися, що не слід користуватися скороченими назвами пакетів, наприклад писати просто weatherpredi ction Навіть якщо ви абсолютно впевнені, що створюваний вами код ніколи не буде використовуватися поза його поточного контексту, ви, можливо, захочете задіяти в цьому контексті код, взятий ззовні Не допускайте потенційної можливості конфлікту імен

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*