Android Oreo მოიცავს ბრძანების ხაზის ინტერფეისის მხარდაჭერას RRO თემებისთვის, რაც მიუთითებს იმაზე, რომ ოპერაციული სისტემა სულ უფრო უახლოვდება სისტემის ფართო თემების მხარდაჭერას.
Android Oreo-ს ამოქმედებასთან ერთად ბევრი დრო იხარჯება წყაროს კოდის ფარული სიკეთეების ძიებაში. წარსულში, Android-ის საინჟინრო გუნდს ჰქონდა ისაუბრა თემის ჩართვაზე Android O-ში. მაისში ვაცნობეთ რომ Android O-ის მეორე დეველოპერის გადახედვა შეიძლება იყოს მინიშნება იმისა, რომ Google მხარს უჭერს Overlay Manager Service (OMS) და Runtime Resource Overlay (RRO), მაგრამ ახლა ჩვენ ნამდვილად ვიცით, რომ ასეც იყო. Android Oreo ახლა, ტექნიკურად, მხარს უჭერს OMS/RRO თემატიკას და ასევე უზრუნველყოფს ინტერფეისს თემების ჩართვის ან გამორთვისთვის, იმ პირობით, რომ თქვენ შეგიძლიათ სცადოთ ბრძანების ხაზის გამოყენებით.
განახლება: სუბსტრატი იყენებს ამ ბრძანებებს დეველოპერის გადახედვით და ახლა Oreo-სთან ერთად, რადგან ისინი ხელმისაწვდომი იყო!
რა არის RRO და OMS?
RRO შეიქმნა შიდა Sony-ს მიერ Sony Xperia ხაზის თემების ფუნქციონირებისთვის. დეველოპერები, რომლებმაც აღიარეს მისი მნიშვნელობა, მუშაობდნენ მისი მხარდაჭერის გავრცელებაზე სხვა ROM-ებზე და მასთან ერთად მოვიდა RRO თემატიკა მრავალ მოწყობილობაზე - არა მხოლოდ Sony მოწყობილობებზე. მან გენიალურად შეცვალა რესურსები აპლიკაციის გაშვების დროს, გამოყენების სიმარტივე, რომელიც იმ დროისთვის შეუმჩნეველი იყო თემების სხვა ვარიანტებისგან. ეს გადაიზარდა OMS-ში, რომელიც ასევე შეიქმნა სონის მიერ. Ცნობილი
ფენების მენეჯერი თავდაპირველად გამოიყენა RRO თემატიკა, მაგრამ OMS მოგვიანებით ადაპტირდა ისეთად, რაც ახლა ცნობილია, როგორც სუბსტრატი და არის თემების ჩარჩო, რომელიც ახლა ყველაზე კარგად იცნობს მომხმარებლებს ჩვენს ფორუმებზე. ჩვენს ფორუმებზე ROM-ები OMS ჩართულობით ნიშნავს, რომ ისინი მხარს უჭერენ სუბსტრატის სტანდარტული თემის ძრავას. "მემკვიდრეობის რეჟიმი" Substratum-ში იყენებს RRO თემატიკას.Android Oreo წარმოგიდგენთ თემის ბრძანებებს
როგორც ჩანს, Google-ს ახლა სურს სრულად მხარი დაუჭიროს ამ თემის ტიპს AOSP-ში, შესაძლოა გადავიდეს სრული, სისტემის მიერ მხარდაჭერილი თემების მენეჯერისკენ. Android Gerrit-ზე, Google-მა ბოლო თვეებში (და Android Oreo-სთან ერთად) რამდენიმე ცვლილება განახორციელა, რაც გვთავაზობს ნაბიჯებს თემის ძრავის ჩართვაზე მთელი სისტემის მასშტაბით. ცვლილებები მოცემულია ქვემოთ, მათი შესაბამისი ვალდებულებების ბმულებით.
- გადაფარვის ბრძანებები
- OverlayManagerService (OMS) დაინერგა
- ახალი ნებართვა სათაურით CHANGE_OVERLAY_PACKAGES
ყველა ეს ცვლილება ნიშნავს Google-ის სვლას სისტემური თემების აპლიკაციის რაიმე ფორმისკენ, რომელიც მომავალში უნდა იყოს ჩართული. ზემოთ ჩამოთვლილი ნებართვა მოითხოვს სისტემის პრივილეგიებს და, შესაბამისად, ნიშნავს, რომ მხოლოდ სისტემურ აპლიკაციას (ან აპლიკაციას root წვდომით) შეუძლია გამოიძახოს ეს ნებართვა. მიუხედავად ამისა, ეს საინტერესოა, რადგან ის აჩვენებს, რომ Google საბოლოოდ მუშაობს რაღაც.
მაშ რატომ მხოლოდ ტექნიკურად Android Oreo მხარს უჭერს თემებს? მარტივი პასუხი არის ის, რომ სანამ თემების დაყენების სისტემური მეთოდის გამოყენება შეგიძლიათ, ამის გაკეთება საკმაოდ უაზრო იქნება. ეს იმიტომ ხდება, რომ, მიუხედავად იმისა, რომ თქვენ შეგიძლიათ გამოიყენოთ ახალი ბრძანების ხაზის ინტერფეისი დაინსტალირებული თემების სამართავად, თქვენ ნამდვილად არ შეგიძლიათ დააინსტალირეთ ახალი თემები root წვდომის გარეშე, რადგან თემები უნდა შევიდეს დირექტორიაში, რომელიც შეზღუდულია მომხმარებლისთვის სივრცე. root წვდომით შეგიძლიათ უბრალოდ ჩართოთ Substratum თემა, ასე რომ არ არის საჭირო ამის გაკეთება ახალი გზით. Google-ს არ შეუტანია სისტემური აპლიკაცია მოწყობილობის თემატიკაზე, ასე რომ, მანამდე არანაირი სარგებელი არ იქნება ამის ახლად ჩართული გზით გაკეთების მცდელობას.
ბრძანების ხაზის თემატური ინტერფეისი
ჩვენ XDA-ში გამოვცადეთ ბრძანება Google Pixel-ზე, რომელიც მუშაობს Android Oreo-ზე. ჩვენ გადავწყვიტეთ რამდენიმე ბრძანების ტესტირება და პირველ რიგში გამოვიყენეთ
cmd overlays list
ყველა წინასწარ დაინსტალირებული გადაფარვის სანახავად. ჩვენ შევამჩნიეთ "com.google.android.theme.pixel"-ის არსებობა, გამორთეთ იგი და ამის ნაცვლად გავააქტიურეთ "android.auto_generated_rro__" შემდეგი ბრძანებების გაშვებით.
როგორც აქ ჩანს, სტანდარტული გადაფარვა გამორთულია და ავტომატურად გენერირებული ჩართულია. ჩვენი დაყენებული გადაფარვების ხელახლა სანახავად ჩვენი ბრძანების გაშვებით, ჩვენ ვხედავთ შემდეგ გამომავალს.
ეს იწვევს ახლად თემატური Android სისტემის პარამეტრების აპლიკაციას ჩვენს Google Pixel-ზე. გაითვალისწინეთ, რომ ზემოაღნიშნული გადაფარვის სია ასევე შეიცავს სუბსტრატის გამოყენებით დაინსტალირებულ თემებს და ჩვენ შევძელით მათი ჩართვა/გამორთვა ისევე მარტივად.
ჩვენ ასევე აღმოვაჩინეთ სხვა ბრძანება წყაროს გათხრებისას. ბრძანება ასეთია
cmd overlay dump --user 0
გვაძლევს შემდეგ გამომავალს.
გამომავალი
პარამეტრები
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
mUserId...: 0
mTargetPackageName.: android
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mState...: STATE_ENABLED
mIsEnabled...: მართალია
mIsStatic...: მართალია
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
mUserId...: 0
mTargetPackageName.: android
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mState...: STATE_DISABLED
mIsEnabled...: false
mIsStatic...: false
}
ნაგულისხმევი გადაფარვები: com.google.android.theme.pixel
PackageInfo ქეში
2 პაკეტი
წაიკითხე მეტი
ასე რომ, როგორც ჩანს, Google-მა დიდი სამუშაო ჩადო თემის ძრავის შემუშავებასა და AOSP წყაროში ინტეგრირებაში. როგორც ჩანს, თუ მას დაემატებოდა მთელი სისტემის მასშტაბით, თემები ჩართული იქნება სისტემის ინტერფეისის ტიუნერში. Google-საც აქვს მოწოდებული ინფორმაცია OEM-ებისთვის, ასე რომ, შესაძლებელია დამატებით OEM-ებმა გაააქტიურონ თემის მხარდაჭერა AOSP ვერსიის საფუძველზე მომავალში Android Oreo-ზე.
ზოგადად, ეს ძალიან საინტერესო განვითარებაა. Theming არის ერთ-ერთი მრავალი ნაწილიდან, რომელიც განსაზღვრავს Android-ს, როგორც სრულად მორგებულ ოპერაციულ სისტემას თქვენს ტელეფონზე, მაშინაც კი, თუ ის ამჟამად მოითხოვს root თემებს სისტემის ფართო თემებისთვის. სამომავლოდ, თუ მას ჩართული ექნება Root წვდომის გარეშე მუშაობა, ეს იქნება მთავარი ნაბიჯი მომხმარებლის თავისუფლების მიმართულებით. რა თქმა უნდა, ის შეიძლება ჩაკეტილი იყოს სისტემის ინტერფეისის ტიუნერში საკმაოდ დიდი ხნით (რადგან გატეხილი თემები არღვევს აპებს), მაგრამ საშუალებას იძლევა მომხმარებელმა, პირველ რიგში, მშობლიური თემის მხარდაჭერითაც კი ისარგებლოს, არის უზარმაზარი დამატება მობილური ოპერაციისთვის სისტემა.