როგორ მოუტანა სუბსტრატმა მეტი არჩევანი მოუქნელ TouchWiz-ს

Sungstratum გუნდიდან [პროექტ.] მოაქვს RRO-OMS-ის ყველა თემატური სიკეთე Samsung Nougat მოწყობილობებს Substratum-ის მეშვეობით! წაიკითხეთ მეტი რომ იცოდეთ!

Android-ის თემატიკამ გრძელი გზა გაიარა, ჰაკიური რედაქტირებიდან სუბსტრატამდე და ახლა, Sungstratum. წლების წინ, ანდროიდის დისკუსიებში სიტყვა "თემა" ხშირად ანაცვლებდა სიტყვას "არჩევანი", რომელიც მიუთითებდა. T-Mobile Theme Chooser ნაპოვნია CyanogenMod-ში, რომელმაც საფუძველი ჩაუყარა Android-ს თემად სამოთხე. OS-ის გარეგნობის შეცვლის შესაძლებლობა მომხმარებლებს პერსონალიზაციის სხვა განზომილებას ანიჭებდა, რაც მათ საშუალებას აძლევს განახორციელონ ცვლილებები, რაც მათ მოწყობილობებს ბევრად უფრო პერსონალიზებულს გახდის.

კარგი მუშაობა გაგრძელდა ორი სხვადასხვა მიმართულებით. თემის ამომრჩეველი გადაიქცა CyanogenMod Theme Engine-ში, მაგრამ მიუხედავად წლების მცდელობისა თემის რესურსებში, CMTE მოძველდა. როდესაც სხვა ალტერნატივები გამოჩნდა.


RRO & ფენები

ერთ-ერთი ალტერნატივის საფუძველი ჩაეყარა, როდესაც Sony-ს კოდის წვლილი ახალი ჩარჩოს სახით ე.წ Runtime Resource Overlay (RRO)

მიიღეს AOSP-ში. ეს ჩარჩო იძლევა აპლიკაციის რესურსების ჩანაცვლების შესაძლებლობას გაშვების დროს (აქედან გამომდინარე სახელი). "გადაფარვები" თავისთავად წარმოდგენილი და მხარდაჭერილი იყო Android-ში ჯერ კიდევ Gingerbread-ში (და შესაძლოა ადრეც), ძირითადად გამოიყენება რესურსების გასაცვლელად, რათა აპლიკაციებმა იმუშაონ კონკრეტულზე მოწყობილობა. Sony-ის მიდგომა RRO-სთან მიმართებაში მოიცავდა აქტივების მენეჯერის შეცვლას, რათა მიეღო ap-ები, რომლებიც იყენებდნენ მოწყობილობაზე არსებულ სხვა შესაბამის რესურსებზე შედგენილ რესურსებს. ეს ახალი რესურსები apk-დან მხოლოდ გაშვების დროს გადაიფარა ბაზის რესურსებზე, რაც სისტემას საშუალებას აძლევდა იმუშაოს ისე, თითქოს ეს ახალი რესურსები ყოველთვის იყო მისი ნაწილი.

RRO Framework გაერთიანდა AOSP-ში Lollipop 5.0-ის გასაჯაროებამდე, მაგრამ 5.0-ის საწყის რამდენიმე build-ში ფრეიმურის ნაწილები გატეხილი იყო სხვა ცვლილებების გამო. Android 6.0 Marshmallow's Developer Previews იყო პირველი, ვინც დაამატა ფუნქციური, თუმცა შეზღუდული RRO ჩარჩო., ხსნის კონფიგურირებადობის კარებს პირდაპირ საფონდო Android-ის დონეზე. ასე რომ, თუ OEM განზრახ არ ცდილობდა განსხვავდებოდეს საფონდო Android-ის თემების ვარიანტებისგან, გარკვეული თანმიმდევრულობის დონე შეიძლება შენარჩუნდეს მიდგომაში, თუ როგორ განხორციელდება „თემები“. Android.

სანამ AOSP თამაშობდა RRO-სთან და ეძებდა საუკეთესო გზას ყველაფრის ჩართვისთვის, დეველოპერების ჯგუფმა ე.წ. BitSyko ერთად ვიმუშავეთ კოლექტიურ ძალისხმევაზე სახელწოდებით "ფენები". ფენები გაფართოვდა Android 5.1 Lollipop-ის საფონდო RRO ფუნქციონალზე, რათა ჩართოთ რესურსების უფრო რთული გადართვა და უფრო მეტი ელემენტის კონტროლი თემებისთვის, ვიდრე ეს შესაძლებელია საფონდო RRO-ით. იმის გამო, რომ Layers აშენდა ზემოთ RRO-ზე, ROM-ის შემქმნელებს სჭირდებოდათ დამატებითი კოდის დამატება, რათა ჩართოთ Layers-ის ფუნქციონირება მათ ROM-ებში, რადგან Layers-ის ყველა თემა არ იმუშავებს მარშმალოუში მარშრუტულ RRO-ზე.

იმავდროულად, სონი საკუთარი ძალისხმევით გაემართა Android თემისკენ. დაიწყო მუშაობა OMS (გადაფარვის მენეჯერის სერვისი), კლიენტი გადაფარვების მართვისთვის, რომელიც საშუალებას მისცემს პროვაიდერებს დინამიურად გააკონტროლონ პრიორიტეტები და ჩართონ და გამორთონ გადაფარვები. OMS გაერთიანებულია AOSP-ში და გაივლის გზას Android O-ში. XDA აღიარებული დეველოპერი ნიკოლაშუმი მან შეძლო თავისი წყაროების საშუალებით დაადასტუროს, რომ Android O-ს ექნება "დინამიური გადაფარვები", რაც, სავარაუდოდ, არის მინიშნება OMS-ზე.

OMS-მა გამოიწვია კონფლიქტები ფენებთან, რადგან ტრადიციულად, ასეთი ფუნქციები თემის კონტროლის ქვეშ იყო. იმისათვის, რომ გაუმკლავდეს OMS-ის მიერ წამოჭრილ საკითხებს, ასევე Layers-ის ფუნქციონალურობის გაფართოებას, BitSyko კვლავ გაერთიანდა (და დაარქვეს სახელი: [პროექტი.]) შექმნა სუბსტრატი. სუბსტრატი არის კლიენტი OMS ფუნქციონირებით რომელიც ცდილობს დააკავშიროს ფენების ფუნქციონალობა OMS-თან და ასევე ისესხებს სხვა ელემენტებს წარსული თემების გადაწყვეტილებებიდან. გადაფარვები აღარ იყო გადახურული ერთმანეთზე ცალკეული ელემენტების თემის გამო, რადგან ახლა ყველა საჭირო ელემენტი შეყვანილი იყო ერთ გადაფარვაში. ფუნქციები, როგორიცაა კომპილაცია მოწყობილობაზე, საშუალებას აძლევდა თემების გამოყენებას ცვლილებებს შორის გადატვირთვის გარეშე, რაც მას ხდის მნიშვნელოვნად საბოლოო მომხმარებლებისთვის უფრო ადვილია თემებისა და ექსპერიმენტების გამოცდა. სუბსტრატი დაარსების დღიდან აქტიური განვითარების პროცესშია და ჩამოთვლილია მისი ყველა მახასიათებელი და დამატებული ფუნქციონირება არ იქნება ამ სტატიის ფარგლებს გარეთ, ამიტომ ჩვენ გადავალთ ამის რეალურ თემაზე ნაჭერი.


სუბსტრატი შევიდა Sungstratum

როგორც წინა ნაწილში იყო ახსნილი, სუბსტრატი დაიწყო როგორც მარაგის OMS ფუნქციონირების გაფართოების საშუალება, ასევე საფონდო RRO ფუნქციონალობა (ფენების მეშვეობით). სუბსტრატი განკუთვნილი იყო AOSP-ზე დაფუძნებულ ROM-ებთან ერთად გამოსაყენებლად, რადგან სხვა OEM-ების უმეტესობა კონფლიქტურ ცვლილებებს შეიტანდა რაც არ დაუშვებს სუბსტრატს თანაარსებობდეს მათ მოდიფიკაციებთან ერთად დამუშავებულ UX სკინზე, როგორიცაა Samsung-ის მაგალითი.

Samsung, თავისთავად, ასევე მუშაობდა თემის გადაწყვეტაზე Nougat-ის საკუთარ მოწყობილობებში გამოსაყენებლად. Sony-სგან განსხვავებით, Samsung-მა არ აჩვენა ინტერესი AOSP-ში თემის კოდის დაბრუნებით. მაგრამ რადგან Samsung-ის გადაწყვეტა საკმაოდ ძირითადი იყო, AOSP ნამდვილად არ კარგავდა ბევრს. Samsung-ის თემატური გადაწყვეტა გამომცხვარი Touchwiz-ში გამოჩნდა თავისი რეალური სახით Samsung Galaxy S6-ზე, მაგრამ როგორც აღვნიშნეთ, ის საკმაოდ შეზღუდული იყო იმაში, რის მიღწევასაც შეეძლო. მანამდე იყო შეზღუდული ექსპერიმენტები, რომელიც დაიწყო Galaxy Alpha-ით, თუმცა სისტემის UI ელემენტების უმეტესობა მის ფარგლებს გარეთ იყო. თემებს შეუძლიათ შეცვალონ ფონები და ხატები, ასევე Samsung-ის რამდენიმე საფონდო აპი, როგორიცაა აკრიფე, კონტაქტები, შეტყობინებები და შეტყობინებების ზონა, მაგალითად.

როგორც ირკვევა, Samsung-ის თემატური ძრავა ვრცელდება RRO, როგორც ნაპოვნი AOSP-ში. სამსუნგმა ასევე განაახლა OMS-ის საკუთარი შიდა ვერსია RRO-ს გაფართოების შემდეგ, ამიტომ RRO-სა და OMS-ის მათი განხორციელება განსხვავდება AOSP-ისგან. მაგრამ გასაკვირია, არც თუ ისე დიდი რაოდენობით - ანომალიური ქცევა, როდესაც განიხილება Touchwiz-ის გამორჩეულობა და სირთულე. თემერებმა, რომლებიც იყენებდნენ Samsung-ის ახალ ფლაგმანებს, განაცხადეს, რომ მათ შეეძლოთ RRO გადაფარვების დაყენება და მესამე მხარის აპლიკაციების თემის შექმნა.

ეს იყო მინიშნება, რომელიც [პროექტ.] სჭირდებოდა სამსუნგის მოწყობილობების ოფიციალურად მხარდაჭერას სუბსტრატუმზე. გუნდმა გადააქცია მცირე რაოდენობის კოდი მათი აპლიკაციის RRO/Legacy განყოფილებიდან, მაგრამ ამის ნაცვლად ითხოვენ root და ითხოვენ გადატვირთვას, მათ გაუშვით კონკრეტული მიზნები, რათა დამონტაჟდეს გადაფარვები. შემდეგ გუნდი მუშაობდა იმის უზრუნველსაყოფად, რომ თემების მეშვეობით დაზარალებული აპლიკაციები იძულებით დახურულიყო ფონზე, რათა უზრუნველყოფილიყო აქტივების სრული განახლება მომდევნო გაშვებაზე.

ჩვენ ვკითხეთ XDA აღიარებულ დეველოპერს ნიკოლაშუმი მოგვაწოდეთ გარკვეული ინფორმაცია იმ გამოწვევების შესახებ, რომლებიც გუნდს შეხვდა Samsung-ის RRO-OMS-ის დახურული წყაროს დანერგვის წინააღმდეგ მუშაობისას:

ჩვენს წინაშე არსებული გამოწვევები საკმაოდ ბუნდოვანი და უცნობი იყო ბევრისთვის, ვისაც დიდი ცოდნა არ აქვს თემების სისტემების გაგება, ღია წყაროებით თუ დახურული წყაროებით - ყველაფერს აქვს თავისი საცდელი და შეცდომის ფაზა. ამ შემთხვევაში, სამსუნგთან მუშაობისას, ბევრ საკითხს წავაწყდი, მაგრამ მთავარი იყო სისტემური განზრახვები ინსტალაციის დასრულების შემდეგ გაშვებული გადახურებისთვის - როგორიცაა სამაუწყებლო მიმღების გამოყენება "android.intent.action. PACKAGE_ADDED” - Theme Service უარყოფს ყველაფერს, რაც არ არის სისტემის ხელმოწერის ნაწილი კონკრეტულ Samsung-თან თემის სერვისის ნებართვა ამის მიღებისგან, ასე რომ, ურთულესი ნაწილია გამოსავალი, რომლის პოვნაც მოგვიწია ირგვლივ.

როგორ ვიყენებთ სუბსტრატს Samsung-ის Theme Engine-თან ერთად არის იგივე სისტემის გამოყენება, როგორც ისინი. ისინი იყენებენ Sony-ის Resource Runtime Overlay სისტემის უაღრესად შეცვლილ ვერსიას, შემოკლებით RRO ან ცნობილია როგორც მემკვიდრეობა Substratum-ის მომხმარებლებში. თუმცა, განსხვავება ისაა, რომ Samsung-ის თემებს აქვს დამატებითი ნებართვა, რომელიც მალავს ამ გადაფარვებს პარამეტრებიდან, ასე რომ თქვენ არ შეგიძლიათ ხელით წაშალოთ ისინი სათითაოდ. ჩვენ ვიყენებთ იგივე სისტემას, თუმცა ვიყენებთ AOSP-ის/Sony-ის იმპლემენტაციას, რის გამოც Samsung Themes-ს შეუძლია მთლიანად თემის ჩარჩო, ხოლო სუბსტრატის გადაფარვები არ შეიძლება შეეხოს შუამავლის სამიზნეს, რომელიც არ არსებობს "fwk" - როგორც ყველამ ვიცით, ფრეიმერი მხოლოდ "android" პაკეტია. სახელი.

უცნაურად ჩანდა, რომ [პროექტ.] შეძლო Samsung-ის RRO იმპლემენტაციის პარალელურად მუშაობა შედარებით მარტივად. ნებისმიერს, ვინც ოდესმე მუშაობდა სამსუნგის მოწყობილობებზე, შეუძლია დაადასტუროს, რამდენად რთულად აკეთებს სამსუნგი ხშირად საქმეებს. ჩვენ დავინტერესდით რაიმე კონკრეტული ბლოკისთვის, რომელიც გუნდს შეხვდა მათი პორტის დროს:

მართლაც არსებობს უსაფრთხოების გარკვეული მექანიზმი, რომელიც გავლენას ახდენდა რამდენიმე მომხმარებელზე - სადაც გადაფარვები უბრუნდება დაწყებისას. ეს გამოწვეულია Samsung-ის მოწყობილობის ჩატვირთვით. ვინაიდან ჩვენ ძირითადად ყველანი ვართ 7.0-ზე TouchWiz/Samsung Experience-ზე, ჩვენ ვიყენებთ „აპების ოპტიმიზაციის“ ახალ მეთოდს (ამის ნახვას შეძლებთ, როდესაც განაახლებთ თქვენს ტელეფონს. აჩვენებს შეტყობინებას Android Nougat-ის ხატულაზე, რომელშიც ნათქვამია, რომ ის განახლდება ფონზე), ასე რომ, აპების ოპტიმიზაციის ეს გზა ასევე განტვირთავს სამიზნეს პაკეტები, რაც საბოლოოდ არღვევს idmapping პროცესს ჩატვირთვისას (სამიზნე პაკეტის არარსებობის გამო) და ამგვარად, რამდენიმე ადამიანი განიცდის გადაფარვის განტვირთვას შემდეგ გადატვირთვა.

თქვენ ასევე შეგიძლიათ ნახოთ ეს ხდება Samsung-ის რამდენიმე თემითაც, განსაკუთრებით @envy~-ის მუქი/შავი თემით - ის აქცევს ნაგულისხმევი ნავიგაციის ზოლის ფერს ეკრანზე -> ნავიგაციის ზოლში შავი, სადაც არის ნამდვილი ნაგულისხმევი ფერი თეთრი. შავზე დაყენების შემდეგ, შეგიძლიათ გახსნათ კლავიატურა და ნავიგაციის ზოლი შავი რჩება. ეს მოხდება შემთხვევით გადატვირთვისას, ასევე ბევრ მოწყობილობაზე.

თემის პოპულარობის დაბრუნების შემდეგ, რა გეგმები აქვს სუბსტრატუმს წინ გვერდით ტოტებზე, როგორიცაა Sungstratum?

წინ, ჩვენ გავაერთიანებთ პატარა აპს ჩვენს დამატებაში ჩვენი ამჟამინდელი მომხმარებლებისთვის, რათა მათ ეს შეძლონ შეეძლოს Samsung Theme Service-ის შეჩერება, თუ მათ მოწყობილობებზე დაინსტალირებული ყველა თემა დაინსტალირებულია XDA. ასე რომ, ადამიანები, რომლებიც გამოიყენებენ Samsung-ის თემის ფორმატირებულ თემებს XDA-დან, თქვენ შეძლებთ გამოიყენოთ დანამატი თავიდან ასაცილებლად სამსუნგის სერვისი ყოველი გადატვირთვის შემდეგ დააბრუნებს მას საფონდო თემას (რადგან ის არ იყო დაინსტალირებული სამსუნგის მაღაზიიდან ოფიციალურად). მას დასჭირდება Samsung-ის დეველოპერის უფასო გასაღები, რომელიც ხელმისაწვდომი იქნება მათი საიტიდან, მაგრამ ის წინასწარ იქნება შეფუთული Sungstratum დანამატის ჩამოტვირთვა.


AOSP-სა და Android O-ში უახლესი და მომავალი ცვლილებებით, როგორც ჩანს, Google-ის ოდესღაც ახალ OS-ს ექნება კიდევ უფრო მეტი პერსონალიზაცია, რომელიც გადაეცემა მომხმარებელს. ზოგიერთი OEM გეგმავს მოშორებას მათი მომხმარებლის ინტერფეისებისა და UX დანამატებისგან AOSP-ის სასარგებლოდ და სხვები, როგორიცაა Samsung, საკმარისად ახლოს არიან საკუთარი თემის გადაწყვეტილებებით. ჩვენ ვგეგმავთ მომავალს, სადაც თემები დიდ როლს ითამაშებენ კიდევ უფრო მეტი ადამიანის მომხმარებლის გამოცდილებაში - OS სადაც თქვენ ნამდვილად აკონტროლებთ როგორ გამოიყურება თქვენი მოწყობილობა, სადაც მომხმარებლის ინტერფეისის ესთეტიკა მორგებულია თქვენ მიერ შენ. და ჩვენ ვერ მივაღწევთ ასეთ მომავალს ამ გასაოცარი საზოგადოების კოლექტიური ძალის გარეშე და ისეთი პროექტები, როგორიცაა სუბსტრატი.


შეამოწმეთ სუბსტრატის ინტეგრაცია Samsung Nougat-ისთვის ჩვენს სუბსტრატის ფორუმებზე!სუბსტრატი GitHub-ზე