2016-05-14, 14:35:38
Здравейте, след близо две години отсъствие реших да се върна обратно във форума и да започна наново с модовете, ромовете и туториалите тук.
Започвам с един много лесен, но ефективен мод, който позволява рестартирането само на SystemUI без да има нужда да ребуутваме Експерията.
--- Скрийншот (от моя ром за Z1, който ще пусна скоро и тук):
ребуут бутон вляво от иконката за батерия
В: Защо това е лесният начин?
О: Андрид позволява два начина на ребуут, този, който ще използвам се възползва от способността на андроид да се възстановява от възникнали грешки.
Вариант1: Написване на нов джава клас, който да се компилира и да се постави в SystemUI приложението като смали файл, който да изпълнява ребуута.
Вариант2: Това е лесния начин, чрез добавяне на бутон в нотификейшън панела. Всеки един бутон има метод OnClick() в XML, който когато, когато бутонът бъде натиснат, извиква метод в джава класа, накратко - от тук нататък нещата се изпълняват както гласи вариант 1. Когато обаче такъв метод не съществува, вместо Force Close съобщението за грешка, Андроид рестартира приложението, в което се намира въпросният бутон. Точно на това разчитаме за този мод.
--- Изисквания:
--- да знаете как се компилира/декомпилира (работа с Apktool)
--- деодекснат (deodexed) SystemUI
--- Инсталация:
--- намерете SystemUI, което е в system>priv-app>SystemUI>SystemUI.apk
--- декомпилирайте
--- намерете и отворете status_bar_expanded_header.xml, който се намира в папката res>layout на декомпилирания SystemUI.apk
--- намерете тази линия:
--- копирайте и поставете този код след нея (това е бутонът):
--- запаметете status_bar_expanded_header.xml
--- трудната част приключи
--- свалете прикачения архив, разархивирайте и поставете двата файла от него в декомпилирания SystemUI
--- в drawable папката на архива се намира xml файл, който управлява иконката, а в drawable-xhdpi е самата иконката за бутона
--- компилирайте и флашвате
--- това е
Възможно е този мод да работи и на одекснати ромове, защото не се пипа нищо по смали кода, но препоръчвам да направите бекъп преди да го качите.
Тествано на Z1, но работи на всички Експерии с 5.0.1 (включително) нагоре.
Оригиналната тема в XDA: тук
Започвам с един много лесен, но ефективен мод, който позволява рестартирането само на SystemUI без да има нужда да ребуутваме Експерията.
--- Скрийншот (от моя ром за Z1, който ще пусна скоро и тук):
ребуут бутон вляво от иконката за батерия
В: Защо това е лесният начин?
О: Андрид позволява два начина на ребуут, този, който ще използвам се възползва от способността на андроид да се възстановява от възникнали грешки.
Вариант1: Написване на нов джава клас, който да се компилира и да се постави в SystemUI приложението като смали файл, който да изпълнява ребуута.
Вариант2: Това е лесния начин, чрез добавяне на бутон в нотификейшън панела. Всеки един бутон има метод OnClick() в XML, който когато, когато бутонът бъде натиснат, извиква метод в джава класа, накратко - от тук нататък нещата се изпълняват както гласи вариант 1. Когато обаче такъв метод не съществува, вместо Force Close съобщението за грешка, Андроид рестартира приложението, в което се намира въпросният бутон. Точно на това разчитаме за този мод.
--- Изисквания:
--- да знаете как се компилира/декомпилира (работа с Apktool)
--- деодекснат (deodexed) SystemUI
--- Инсталация:
--- намерете SystemUI, което е в system>priv-app>SystemUI>SystemUI.apk
--- декомпилирайте
--- намерете и отворете status_bar_expanded_header.xml, който се намира в папката res>layout на декомпилирания SystemUI.apk
--- намерете тази линия:
Код:
<TextView android:textSize="@dimen/battery_level_text_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/battery_level" android:layout_width="wrap_content" android:layout_height="wrap_content" android:importantForAccessibility="noHideDescendants" android:paddingEnd="@dimen/battery_level_padding_end" android:layout_marginStart="@dimen/header_battery_margin_expanded" />
</LinearLayout>
--- копирайте и поставете този код след нея (това е бутонът):
Код:
<ImageButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/systemui_restart"
android:layout_toStartOf="@id/multi_user_switch"
android:onClick="selfDestruct"
android:layout_marginRight="160dip"
android:layout_marginTop="19dip"/>
--- трудната част приключи
--- свалете прикачения архив, разархивирайте и поставете двата файла от него в декомпилирания SystemUI
--- в drawable папката на архива се намира xml файл, който управлява иконката, а в drawable-xhdpi е самата иконката за бутона
--- компилирайте и флашвате
--- това е
Възможно е този мод да работи и на одекснати ромове, защото не се пипа нищо по смали кода, но препоръчвам да направите бекъп преди да го качите.
Тествано на Z1, но работи на всички Експерии с 5.0.1 (включително) нагоре.
Оригиналната тема в XDA: тук
Advanced Xperience Projects Team Leader
X10, running Advanced Xperia ROM
Z1, running Advanced Xperience ROM