Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Совместный перевод документации Android

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

На личном опыте убедился, что для изучения Андроид ничего лучше доки пока еще не придумали. Большинство книг — откровенная туфта, набитая какими-то отрывками информации и ориентированная исключительно на продажу. В то же время мой английский не насколько хорош, чтобы свободно читать документацию) а качественный перевод занимает много времени.
Думаю что не у меня одного возникли подобные проблемы. Поэтому хочу предложить всем, кого это может заинтересовать, небольшой совместный проект. Каждому взять по 2-3 главы из документации и без спешки, качественно их перевести. А затем просто поделимся результатами.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Вот две первые главы документации zalil.ru/31434429 Выкладываю в свободный доступ для начала. Кто хочет поучавствовать в проекте — пишите здесь или свяжитесь со мной по скайпу yvolohov или напишите на yvolohov[no_spam]gmail.com

Файлы наверное сохранены без поддержки старых версий ворда? Можете переделать?

Спасибо! Вы делаете большое дело.

По-любому, чтобы войти в Андроид — нужно иметь бэкграунд хотя-бы на C#, и бегло читать англ.документацию. Нубам с нуля будет тяжело.

Уважаемый покоритель троллей!

Вот вы тут излагали

Весь UI делается в XML (как в WPF), все текстовые ресурсы хранятся в XML, с именем, в зависимости от возможностей устройства, и от текущего языка. И вообще, как описывать UI — содрали с WPF.

, а можна спросить, как жеж люди пишут игрушки на андроеде ?
Ведь мне надо просто что-то типа канвас на всю репу, и что бы я читал с карточки из текстового файла тексты или из джипега спрайты, а не с ХМЛя, и репа что бы принимала мордотык, а уж на кого жали я и сам разберусь, мне бы координаты тыка, или если многопальцевый тык, тогда как? Или это только на С++, а не на джаве?

Звыняйте за трол’я.

Струдомпрасцал что ты написал. Реально, хрен понял. Напишешь по-русски — отвечу. Насчет игрушек —
«Create and port cool games like Space Blaster, classic Asteroids™,
Doom and Wolfenstein™ 3D using Android»
Apress±+Pro+Android+Games+_28December+2009_29+_28ATTiCA_29.pdf
гугел в помошь
Рассматривается неуправляемый код на С++

Канвас — это англицкое слово, означает холст, канва на которой рисуют спрайты. Репа — экран, на всю репу — максимальное разрешение экрана. Читал, что в первых версиях Андроида были трудности со чтением и сохранением (программно) файлов на SD- карточке (наверно, просто было залочено). То что это только на плюсах, и так было понятно, что джава для хомячков.

Так что получается, что в открытой документации нету чтения файла и вывода рисунка на канву? Надо отстёгивать гуглу за вывод картинок и за обработку многопальцевых жестов?

Я не знаю, что было в первых версиях андроида — у меня 2.3.4
А чтобы поиметь доступ на запись к карте — надо поставить пермишн android.permission.WRITE_EXTERNAL_STORAGE.Для чтения боков быть не должно (она монтируется в /sdcard)

Джава не для хомячков. Многопальцевые жесты поддерживаются не всеми девайсами, если поддерживаются вообще (учи мат.часть)

канвас на всю репу — Theme.NotitleBar.Fullscreen
текущий мордотык — имплементи OnTouchListener (на многопальцевый тык не затачивайся — не все девайсы понимают Multitouch), и читай MotionEvent, а также View прокасти, чтоб узнать, вас из дас
спрайты — ембеди png, или используй XML анимацию, а там уже BitmapBuilder (или как его там), чтобы вернуть поток из ресурсов
Если знаешь, чем отличается код на джаве и С++ - таких вопросов не должно возникнуть
А все ресурсы, в т.ч. графические — по-нормальному должну быть embedded (откуда ты знаешь, куда поставят твое приложение — на карты или в основную память, даже если ты в манифесте разрешишь установку на карту? да и нафиг лишний пермишн типа чтения с карты)
p.s. Не путай Canvas и View — я про View писал в предыдущем посте

View в игрушках и картах нафик не нужен, как и embedded. Только карта. Ну если есть SSD приличного размера, тогда да. Дело в том, что ресурсы будут постоянно меняться или приниматься или по сети (знамо что по Wi-Fi) или с карты или через USB. И желательно в форматах, доступных быстро на РС, без всяких вывертов типа перевода из XML в текст или изображение. И зачем XML анимация? По таймеру с синхронизацией да и всё. А если аппарат не тянет, так снижаем количество кадров в секунду.

Не будут они постоянно меняться и ходить в апдейтах. Апдейтится только APK — исходя из версии в манифесте. И не у каждого юзера есть SD Card априори. Ресурсы — все embedded, как в jar, так и в apk JAR, APK — это зипованный файл, по известному алгоритму, получить сцылко — используются инфлатеры (учи мат.часть) А если ты провтыкал пермишн, и не указал, что приложение может ставиться на SD Card — что тогда — приплыли что ли?

Бальшое спасиба.

Если верить ваш текст, на Андроед нарисовать карты моно только в браузере, а мне написать свой никто не даст, то есть, с чего разговор начался, для рисования спрайтов в игрушках нужна только ЛИЦЕНЗИЯ.

А ведь мне надо так мало:
1) нарисовать картинку в указаной точке
2) узнать, где ткнули пальчиком

3) прочитать из файла или из сети картинки и тексты для игрушки.

Юный друг, забудь про Андроед, пиши на РС, там вроде уже почти всё бесплатно.

Либо мы говорим на разных языках, либо ты гонишь :) Ты можешь объяснить, зачем ресурсы хранить в ОТДЕЛЬНОМ пэкэдже? К ресурсам получают доступ вот так:
developer.android.com/...-resources.html
и точка.
Тем более, что ты неявно указываешь, какой тянется конкретный ресурс — система сама разруливает из всех возможных, в зависимости от ее состояния.

И из сети нафиг читать ресурсы, если их нужно локально хранить? А если нет доступа к сети (бабло на телефоне закончилось), не думал об этом?

А если мне надо скачать пробки на карту или карту освежить? Или показать фотки из облака друзьям, как я отдыхал в Антарктиде, а потом скинуть им на карточку. Для печати фоток или отправки в МВД

Если у тебя графика — статическая (типа, децл в игре бегает, или background и т.д.), тебе не надо ее все время тянуть из интернета. И даже не надо ложить в отдельный package. Потому что есть туева хуча механизмов, как работать с графикой — от статических ресурсов, до BLOB и внешних библиотек типа com.google.android.maps (для твоего первого вопроса) Как показать фотки из облака друзьям программно отправляются ММС или емыло — в сети примеров навалом.

Спасиба, убедил. Никогда не буду программировать для Андроеда.

А вот что надо — так это типа Tips and trics: по каждому визуальному компоненту сделать видео, что он из себя представляет. Типа ViewFlipper и т.д. А также, как же делается это интересный эффект, чтобы сделать всплывающее снизу окно с кастомным лэйаутом (типа, как ненавязчиво всплывает клавиатура, когда фокус в поле ввода). Я лично уже знаю как (через WindowManager), но гуглил прилично.

Изучать Андроид ИМХО нужно с архитектуры, то есть, знать кирпичики, с помощью которых можно построить домприложение.
Если не вдаваться в дебри, типа native приложение на С++, то разработчикам даны следующие кирпичи (их можно по пальцам перечесть):
— Activity (а также TabActivity — чтобы делать Активити с таб хостом,и вроде называется PropertiesActivity) — это содержимое экрана (аналог — System.Windows.Forms.Form :) Есть понятие стека активити, и их жизненного цикла. Ну и еще классная фича — AsyncTask
— Service (а также IntentService, Service bound и Service IPC remote через AIDL) — это сервисы: клиентский и удаленный. Это — логика приложения. Логику сервиса нужно писать в отдельном потоке и имплементить интерфейс Runable (аналог — backgroundworker), потому что если делать в одном, а работа займет более 3 секунд (например, опрос веб сервиса) — появится сообщение, что приложение не отвечает. IBinder — это RealProxy и TransparantProxy в одном флаконе.
— Intent — это типа оболочки для сериализуемых типов, в которую можно впихнуть свою инфу (а все невпихуемое — через Parcellable). Интенты обычно рассылаются широковещательно (например, IntentService — ждет соотв.Интент, если впоймал — сервис запустился. Или для запуска соотв. активити)
— BroadcastReceiver — приемник интентов (мы послали соотв. интент — запустили intentService. Далее, IntentService сделал свою работу — отправил соотв. броадкаст в виде интента, соотв.BroadcastReceiver, настроенный на «волну» соотв. интенте аего поймал). При этом, через интенты мы имеем асинхронное событийное поведение системы.
— Notification (это механизм уведомления пользователя, через верхний тайтл бар, который вниз тянется). А также сюда — тост, и билдер диалога
— ContentProvider — это механизм абстрактного асинхронного взаимодействия с каким-то хозяином данных, и у данных есть URI (например, нам пофигу, кто в системе заведует контактами адресной книги, но мы можем послать интент по типу contacts://blablabla — и нам прийдет ответ в виде курсоров, которые мы можем проскроллить)
Также, всякие вкусности, типа ArrayAdapter — это когда есть данные, и мы хотим в активити сделать их визуальное представление по xml шаблону — прибиндить массив соотв.Хранителя к лэйауту. Т.е., адаптер между конкретными данными, и их визуальным представлением.
Ну и все активити, все интенты, все сервисы, все броадкаст ресиверы, все пермишшны должны быть зарегисирированы в манифесте приложения.
Весь UI делается в XML (как в WPF), все текстовые ресурсы хранятся в XML, с именем, в зависимости от возможностей устройства, и от текущего языка. И вообще, как описывать UI — содрали с WPF.

Среда разработки — Eclipse Helios + соотв.плагин. Таже, нужно знать, что такое LogCat, и команды ADB. Чтобы делать background — нужно использовать только формат 9.png Встроенная база данных — SQLite.

Вот и все, что нужно знать на уровне мидла :) На уровне сеньора — нужно этим всем оперировать без подсмотра в документацию, плюс сделать что-то свое, и разместить на Маркете (и срубить бабла :)

вы начните, а мы подтянемся :)

Ок, сейчас перевожу intents and intent filters, как только будет готово, выкладываю здесь ссылку для начала.

а что вы за базу выбрали?
github, google translate, ...?

а и главное не париться, Линус начинал делать систему для себя, а не для других, ну и сейчас он делает систему для себя — так для опенсорса лучше.

ой да ладно :)
Оно никому не надо, под андроид можно писать зная java se и прочитав developer.android.com/...orials/notepad/index.html
Дальше используя подход из gaperton.livejournal.com/32772.html и скачав api demos можно писать код

Со знаниями Java SE и парой примеров можно начать писать, но не писать. Рано или поздно столкнешься с вопросом, на который нет ответа ни в демках ни в книжках.

Из какой документации? Которая на developer.adnroid.com ? Это ничего для начинающего не даст. Мне лично помогла книга, в которой с нуля, и до самого конца делается и усложняется программа. Когда сам по клавиатуре поклацаешь — тогда и будешь писать, а теория — ее зубреж ничего не даст.

например, что такое формат 9.png (NinePath), и как его применять, я для себя разрулил когда на ютубе посмотрел видео с начала создания, до имплементации. В документации — хрень какая-то.

У каждого свой подход к изучению, но лично мне документация очень помогла. А вот несколько книг на русском, которые скачал или купил, явно не стоят затраченных на них усилий. Переводить же книги с английского себе дороже, воды там очень много, так что напрасная трата времени. Обучающего видео к сожалению не находил.

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

а кто будет поддерживать эту доку в актуальном состоянии?

Потрать свое время на изучение английского, а не на перевод доки. будет полезней

Обновление доки происходит не так часто. К тому же гугл просто не может не соблюдать совместимость со старыми версиями API, так что эта информация еще долго будет актуальной.

Підписатись на коментарі