від Meggyi001, 3 роки тому

Привіт. Пару тижнів тому я поділився своїми 1-2 меншими локалізаціями "Android Угорщина" у групі facebook, з більшим чи меншим успіхом, але справа не в цьому, а в тому, що кілька людей запитували, як змінити/інтерпретувати файли apk, оскільки вони теж хочуть це зробити/спробувати. І їхнє запитання/бажання цілком правомірне, бо навряд чи є опис/стаття на нашій прекрасній мові. Звичайно, таких блогів англійською мовою не існує. Ось чому я думав, що склав би для них кілька рядків, один "нуб дружній"опис, крок за кроком з самого початку. Звичайно, залишаючись строго на рівні початківця, оскільки я не вважаю себе професіоналом чи просунутим, можливо, я на сильному рівні початківця.

Після довгих роздумів я вирішив не знайомити їх із обіцяним методом, використанням різних пакетних файлів та додатків з вікнами, оскільки це забирало б суть/хвилювання робочого процесу. Так само, як автомобіль з автоматичною коробкою передач забирає трохи досвіду водіння. Їх і так багато: Apk studio, Android studio 3.0 beta 6, Eclipse, і я міг би перерахувати ще. Це також дуже добре для більш серйозних програмістів. Замість того, що я дізнався від своїх колег з PH, Keeperv85 та RootRulez, я б описав рішення командного рядка Windows. Ідеально підходить для перекладу/модифікації. На телефонах Android вже існує безліч програм/опцій для цього. На початку, звичайно, я їх теж використовував. Моя перша спроба з цією програмою, прибл. 4 роки тому: APK Utility 1.5, розроблений в Угорщині, gabika318. І оскільки я ще нічого не зазнав, і я також не знав неписаних правил, з самого початку мої години друкування та перекладу пішли на суп. Незабаром я напишу вам про те, чому це було.

Але давайте зачепимо лето, що вам потрібно буде перекласти/відредагувати:

Важлива інформація:

● Якщо, наприклад, ви хочете замінити лише зображення чи піктограми у файлі apk, цього досить "сирий" режим редагування файлу. Ви просто перейменуєте розширення apk на zip і, ну, ви змогли його відкрити. Звичайно, у цьому випадку сам вихідний код залишається невидимим і не розпаковується.

● Якщо ви хочете офіційний переклад програми і продовжуєте думати про це, розробник надішле вам кілька файлів, до 4-5. За замовчуванням ми лише змінимо або додамо один або два мовні файли xml сюди (strings.xml/arrays.xml). Але те, чого немає в мовних файлах xml, знаходиться у вихідному коді. Це не проблема, якщо ми робимо переклад лише для себе чи своїх друзів. Але якщо ви хочете, щоб він також з’явився в магазині Play, вам доведеться перекласти всі предмети, надіслані розробником, які він інтегрує в додаток, наприклад, андроїд-студію (або те, що він зараз програмує). Якщо це було трохи багато чи незрозуміло, не хвилюйтеся, ви зрозумієте це пізніше .

Прикладом того, що розробник надіслав для офіційного локалізованого перекладу, є:

І те, що ми будемо редагувати для себе, це саме це, плюс, можливо, навіть слова у вихідному коді, які тут не знайдені.

Якщо це було трохи багато чи незрозуміло, не хвилюйтеся, ви зрозумієте це пізніше .

Перші кроки:

1: Ви встановлюєте 2- і 3-як у пункті.
2: Ви також встановите Total Commander та Notepad ++.
3: THE 7-Наприклад, ви завантажуєте та витягуєте один Androidtool наприклад, на привід D: \, якщо немає D: \, C: \ - це теж добре.
4: ви завантажуєте 9-і точка Apk_Save_v1.5.apk-t, а потім скопіюйте створене раніше Androidtool папку. (мені, як ви можете бачити на малюнках, autil назва папки)
5: Androidtool відкрийте командний рядок для папки. Або ліву зміну і клацніть на ній правою кнопкою миші, тоді "відкрити тут командне вікно", або вже папку планки "cmd" -re katt.
6: Введіть це "кришка". Якщо ви успішно встановили програми Java, ви повинні отримати це зображення:

7: Тепер ми встановлюємо "рамки"-з якого програма розпакування отримає інформацію для вихідного коду. Введіть їх у командному рядку один за одним, звичайно, чекаючи, поки ви закінчите одне, а потім інший може перейти:

"apktool if framework-res.apk"

"apktool if lge-res.apk"

"apktool if mediatek-res.apk"

8: А зараз ми розпаковуємо наш тест. Введіть це в командному рядку:

"apktool d Apk_Save_1.5.apk" потім введіть, ви повинні отримати це:

Пізніше, якщо вам потрібно розпакувати файл більше одного разу, може бути приклад/він може бути "-f" Ви можете замінити цільову папку за допомогою цього перемикача: "apktool d -f Apk_Save_1.5.apk". Розпакувавши, давайте подивимось на Androidtool наша папка, вона стала однією Apk_Save_1.5 папка з декількома вкладеними папками.

9: Перш ніж вносити зміни, ми спершу спробуємо перепакувати/протестувати наш тестовий apk. Не ходіть, як на початку, кілька годин набору тексту було витрачено даремно, оскільки перепакування видало помилку в ретроспективі. Введіть це в командному рядку, щоб перепакувати існуючу папку у файл apk: "apktool b Apk_Save_1.5" Примітка: Я також стикався з тим, що apk можна було легко розпакувати та розпакувати, але оскільки я змінив навіть лише одне слово в ньому, я більше не міг його розпакувати або програма не запустилася. На щастя, я ще мало чого бачив.

Ви можете помітити, що в основній папці створено нову папку: "dist"

Ось наш повторно зібраний новий немодифікований, підписаний новий файл apk. Що настане пізніше "спів". Програму неможливо встановити без співу. (З цього є винятки, але це вже не початкова тема)

Давайте поглянемо на розпаковану папку apk. Наприклад, інші папки можуть мати інші папки "активи", "lib", "smali_classes xx", тощо Папка res зазвичай містить зображення, піктограми, мовні файли, сценарії меню/операції, кольори, зовнішній вигляд, анімацію тощо. Не соромтеся озирнутися навколо нас, ви йому не зашкодите. Папка smali містить вихідний код, іноді доводиться шукати за допомогою Total Commander, якщо слова/речення немає в жодному з мовних файлів.

Зараз нам знадобиться папка значень, яка включає strings.xml, і все ще буде arrays.xml, але це не зараз.

11: Переклад. Оскільки папка значень за замовчуванням є англійською, створіть папку values-hu, до якої ви копіюєте strings.xml. Ми відредагуємо це за допомогою Notepad ++.

За визначенням, сміливі чорні англійські слова слід перекладати на угорську. Це всього 9 рядків, це легко, скоро у нас буде. В самому кінці операцій вам потрібно протестувати програму на телефоні, щоб вона виглядала добре, граматично гаразд тощо тощо. Якщо щось не так, ми можемо легко це виправити згодом. (тисячі послідовних перекладів, так, це може зайняти місяці)

Будь-яке слово чи речення для перекладу ніде не знайти "strings.xml"-Бен, також це не так "arrays.xml".ben, ніде, швидше за все, буде в самому вихідному коді. Звичайно, я не міг його знайти. Візьмемо, наприклад, a "Змінено" слово.

Багато разів це дає більше результатів, якщо ви не знаєте назви посилального файлу, вам доведеться переглянути його по одному за допомогою Notepadd ++.

І ми вже знайшли:

12: Які не слід перекладати чи змінювати. Я можу показати тобі правило або два, але воно також може бути засвоєне з часом і завдяки справді виконаній рутині. Якщо ви перепишете те, чого не слід, ви збираєтеся видалити помилку під час упаковки. На щастя, у Notepad ++ також є кнопка скасування після збереження файлу, що дозволяє багато повертатися назад.

Arrays.xml вже трохи складніший, є англійські слова, цифри у верхньому/нижньому регістрі, цифри тощо. Там теж все не можна переписати.

Файл smali, цей бруд іноді може бути довгим, у цьому випадку Total Commander - це скарб, якщо вам потрібно шукати слово у файлі.

13: Помилки. Можуть виникати помилки упаковки, їх багато. За це я можу сказати те саме, що і за 12-в момент: коли час триває, і рутина набувається, ви дійсно можете дізнатися, яка помилка/код помилки/повідомлення про помилку означає що. Зазвичай також вказується конкретний файл та серійний номер, де шукати помилку. (Іноді відсутній лише свіжий aapt.exe або свіжий apktool.jar або свіжий фреймворк-res.apk) Я наведу вам кілька прикладів:

Apktool.jar тут, мабуть, був старим

опис

Помилка аналізу xml: невідповідний тег:

Зазвичай це означає відсутній знак>, який ви могли випадково видалити під час перекладу або спричинити інші проблеми із синтаксисом.

Фрагмент журналу:

I: Перевірка, чи змінилися ресурси.
I: Нарощування ресурсів.
libpng помилка: не файл PNG
ПОМИЛКА: Не вдалося обробити зображення PNG D: \ Documents \ clockworkmod \ APK-Multi-Tool \ other \ . \ projects \ am.apk \ res \ drawable \ banner1.png
libpng помилка: не файл PNG
ПОМИЛКА: помилка обробки PNG-зображення D: \ Documents \ clockworkmod \ APK-Multi-Tool \ other \ . \ projects \ am.apk \ res \ drawable \ banner2.png

Проблема тут полягає в тому, що два файли png - не png, а gif. Перед стисненням ці файли потрібно перейменувати у розширення gif.

Keeperv85 також зробив відео про це: [посилання]

Результати Google щодо помилок та рішень: [посилання]

14: Змінюйте кольори. Якщо нам потрібно змінити колір певної панелі або будь-якого іншого елемента в додатку, а чому б і ні, ми можемо зробити це теж. Тут нам пощастило у випадку пробного apk, оскільки він невеликий і простий, тому вибраний для прикладу колір можна знайти лише в одному місці. В іншому випадку для інших apk, на жаль, може знадобитися кілька хвилин, якщо ми отримаємо більше кольорових звернень, перш ніж вибрати, який з них підходить для того, що ми хочемо змінити.

Оригінал a "блідо жовтий", як змінено нами "блідо-блакитний" колір.

Для цього нам знадобляться Total Comannder, Notepad ++ та програма для малювання, яка може відображати шістнадцяткові коди кольорів. Їх багато, наприклад, Adobe Photoshop, Paint.net тощо. Зробіть знімок екрана збереженого apk на своєму телефоні, а потім відкрийте його на своєму комп'ютері за допомогою програми для малювання. Використовуйте піпетку, щоб переглянути кольоровий код, який ви шукаєте:

Коли у вас є колірний код, вам просто потрібно знайти його у вихідному коді. Потім використовуйте Total Commander, щоб відкрити папку Androidtool/Apk_Save_1.5 "команди/пошук" меню (Alt + F7), тут a "текст" для пошуку введіть код і введіть. Ви просто знайдете для нас файл, клацніть правою кнопкою миші і потім "Редагувати за допомогою Notepad ++".

У Notepad ++ ви можете використовувати клавіші ctrl + f, щоб знайти колірний код. Ми вставимо на нього попередньо вибраний власний колірний код, а потім "Файл/Зберегти", і якщо ми перепакуємо apk, новий колір набуде чинності.

15: Підписання. Загальні файли .apk будуть доступні лише після підписання. Це легко зробити за допомогою командного рядка, але такі ліниві люди, як я, також можуть це зробити за допомогою спеціалізованої програми.

"java -jar signapk.jar testkey.x509.pem testkey.pk8 Apk_Save_1.5.apk Apk_Save_1.5_signed.apk"

Звичайно, це працює, лише якщо "dist" копіювати з "Apk_Save_1.5.apk-t" Androidtool папку.

У програмі:

За допомогою Apk singner відкрийте файл, який хочете підписати, а потім натисніть "Тестовий ключ" кнопку. Після цього ви можете перейти на тестування на своєму телефоні.

Тема апаратного забезпечення Pro: [посилання]

Дуже коротко, це швидкий курс, і це насправді лише вершина айсберга! Тут можна багато чому навчитися і навчитися. Я чекаю конструктивних коментарів від знайомих з темою та запитань від початківців. Сподіваюсь, дехто з вас відчує смак локалізації, бо, на жаль, нас стає все менше і менше, хто цим займається. За відсутності часу я не дуже. Той, хто цього ще не робив і зараз проходить ці кроки, з нетерпінням чекаю, чи вдалося йому перекласти/будь-яке самоаналіз.

Дякуємо за читання, привіт.