ამ სტატიაში ჩვენ განვიხილავთ განსხვავებებს rovo89-ის მომავალ Xposed for Nougat გამოშვებასა და მიმდინარე იმპლემენტაციას შორის, რომელიც ხელმისაწვდომია Nougat-ისთვის.
Xposed Framework იყო - და არის - თქვენი Android მოწყობილობის პერსონალურად მორგების მთავარი გზა, რომელიც თავსებადია თითქმის ყველა მოწყობილობასთან, რაც საშუალებას გაძლევთ მარტივად დააინსტალიროთ მოდულები პრაქტიკულად ნებისმიერი დეტალის შესაცვლელად.
გსურთ მიიღოთ ყველა ის ფუნქცია, რომელიც გთავაზობთ საბაჟო ROM-ს, ფლეშის გარეშე?GravityBox ანXTouchwiz გააკეთებს ამას. გსურთ შეცვალოთ გარკვეული პარამეტრები თითო აპის საფუძველზე, როგორიცაა კონკრეტული აპის DPI-ის შეცვლა?აპის პარამეტრები დაფარული გაქვს. ისურვებდით, რომ აპლიკაციის დეველოპერებმა დაფიქრდნენ კონკრეტული ფუნქციის დამატებაზე, როგორიცაა Google-ის ნებადართულიHangouts-ის პერსონალიზაცია ან Facebook გაძლევთ საშუალებასჩამოტვირთეთ Instagram პოსტები, რომლებიც მოგწონთ? ისე, თქვენ არ გჭირდებათ, რადგან Xposed აძლევს დეველოპერებს უფლებას შეცვალონ თითქმის ყველაფერი, რაც მათ აქვთ მინდა, იქნება ეს სისტემური მახასიათებელი, რომელიც მოითხოვს საბაჟო ROM-ს, ან შესწორებას კონკრეტულისთვის განაცხადი.
Xposed Framework-ს გააჩნია მთავარი უპირატესობა დეველოპერებისთვის, რაც არის განვითარების სიმარტივე (შედარებით, რომ საჭიროა AOSP-ის შედგენა ROM-ის შესწორებებისთვის, ან Smali კოდის რედაქტირება). მას ასევე მოაქვს დიდი უპირატესობა მომხმარებლებისთვის: მოხერხებულობა, რადგან ის აღარ აიძულებს მათ იპოვონ და გამორთონ ROM, რომელიც უზრუნველყოფს მათ მიერ მოძიებულ ყველა ფუნქციას (სანაცვლოდ, მათ შეუძლიათ დამოუკიდებელ მოდულების შერევა და შეხამება) სტაბილურობის და მიზნობრივი ბალანსის თავზე შესრულება. ის ასევე ქმნის შესწორების აპლიკაციები ბევრად უფრო ადვილია, რადგან არ არის საჭირო სხვადასხვა ხელმოწერებთან გამკლავება, რაც შედეგად მოითხოვს მომხმარებლებს ორიგინალის დეინსტალაციას ვერსია ან გადახტომა გარკვეული რგოლების მეშვეობით, როდესაც აპლიკაცია ამოწმებს მის ხელმოწერას (რაღაც შეცვლილი YouTube კლიენტები ეხება, მაგალითად).
ერთადერთი პრობლემა? მისი ბუნებიდან და Xposed-ის დეველოპერის (ჩვენი უფროსი აღიარებული დეველოპერი) თავისუფალი დროის რაოდენობის გამო,rovo89) აქვს, ხშირად ჩამორჩება ანდროიდის გამოშვებებს.დაახლოებით ოთხი თვე დასჭირდა Lollipop-ის მხარდასაჭერად განახლებას, და დაახლოებით ერთი წელი სჭირდება Nougat-ში მისვლას. ეს არ არის ისეთი ცუდი, როგორც შეიძლება ჩანდეს, თუ ამაზე ფიქრობთ რამდენი Android მომხმარებელია რეალურად Nougat-ზე (დაახლოებით 13.5%, თუმცა გაითვალისწინეთ Android-ის მოყვარულები, Xposed-ის სამიზნე აუდიტორია, ასევე უფრო მეტად იქნებიან Nougat-ზე). თუმცა, მაინც შეიძლება საკმაოდ შემაშფოთებელი იყოს, რომ არ შეძლოთ თქვენი საყვარელი Xposed მოდულების გამოყენება და ერთდროულად გქონდეთ Android-ის უახლესი და საუკეთესო ვერსია.
Xposed Framework-ის წყაროს კოდით ხელმისაწვდომია (მინიმუმ სტაბილური, გამოშვებული ვერსიებისთვის), დეველოპერიაიძულებს გადაწყვიტა ხელების დაბინძურება და ენახა, შეეძლო თუ არა rovo89-ის ზოგიერთი მოდიფიკაციის გადატანა Nougat-ზე. აირჩია განსხვავებული და მარტივი მიდგომა, აბფორსმა არსებითად ადაპტირდა Xposed-ის ის ნაწილი, რომელიც რეალურად იყო აკეთებს მაგიას ერთხელ დაინსტალირებულად და შესაძლებელი გახადა მისი ჩართვა საკუთარი ROM-ის შედგენისას (ამის შემდეგ, გამოჩნდა სხვა გამოსავალი). ეს მიდგომა, სავარაუდოდ, ძალიან განსხვავებულია რადგან ის იგნორირებას უკეთებს Xposed-ის ერთ-ერთ ძირითად უპირატესობას, რომელიც ხელმისაწვდომია ყველასთვის მარტივად. თუმცა, ყოველგვარი პროგრესი მისასალმებელია და მრავალი ხელმძღვანელი ამოცანის გადასაჭრელად შეიძლება იყოს მომგებიანი და შესთავაზოს ახალი ხედვა. მთავარი საკითხი, როგორც ვხედავთ, არის დეზინფორმაცია ამ განვითარების ირგვლივ (გავრცელდა ზოგიერთი სხვა „დეველოპერების“ და ზოგიერთი ბლოგის მიერ), ასევე საზოგადოების გარკვეული რეაქციები. იმედია, ეს სტატია მთელ სურათს უფრო ნათელს გახდის.
უპირველეს ყოვლისა, იმისთვის, რომ გავიგოთ სამუშაო, რომელიც წავიდა - და ჯერ კიდევ მიდის - ოფიციალურ Xposed ჩარჩოში, ისევე როგორც abforce-ის ვერსიაში, ჩვენ უნდა შევხედოთ როგორ მუშაობს ფრეიმორი. მიუხედავად იმისა, რომ ჩარჩო თავად არის პროექტის მხოლოდ ნაწილი, ჩვენ ჩვეულებრივ ვგულისხმობთ როგორც ჩარჩოს, ასევე ინსტალერს რადგან ჩარჩო კარგავს თავის ბევრ უპირატესობას უნივერსალური ინსტალერის გარეშე, რაზეც ასევე ბევრი სამუშაოა.
Xposed-ის ძალა მომდინარეობს მარტივი კონცეფციიდან: ნებისმიერი მეთოდი შეიძლება იყოს „ჩამოკიდებული“ (მეთოდები მცირეა ნაწილები, რომლებიც ქმნიან ნებისმიერ პროგრამას), რათა Xposed მოდულის კოდი შესრულდეს ადრე, მის შემდეგ ან მის ნაცვლად ის. ავიღოთ მარტივი მაგალითი: დავუშვათ, რომ მენიუს ღილაკზე დაწკაპუნებისას Instagram იყენებს მეთოდს სახელწოდებით "showMenuOptions", და ეს მეთოდი გიჩვენებთ ღილაკებს "Report" და "Share". Xposed მოდულის შექმნით, შეგიძლიათ შეცვალოთ ეს მეთოდი, რომ დაამატოთ დამატებითი ღილაკი სურათის ჩამოსატვირთად, მაგალითად, გაზიარების ნაცვლად. ცვლილებები შეიძლება განსხვავდებოდეს მარტივი შესწორებებიდან (მაგ. Play Store Changelog) ძირითადი რემონტისთვის (როგორიცაა GravityBox, რომელიც მიზნად ისახავს უზრუნველყოს ყველა იმ მახასიათებლის მიწოდება, რომელიც პერსონალურ ROM-ს ექნება)!
ეს ხდის Xposed-ს ძლიერს, მაგრამ ეს განტოლების მხოლოდ ნაწილია. სხვა ნაწილები არის მრავალმხრივი - ან რეალურად Xposed-ის გამოყენება თითქმის ნებისმიერ მოწყობილობაზე (მხარდაჭერილი Android ვერსიით) და გამოყენების სიმარტივე. მომხმარებლებმა უბრალოდ უნდა აითვისონ ინსტალერი, რომელიც თავის მაგიას აკეთებს და დინამიურად ასწორებს მათ სისტემას Xposed-ის ინტეგრირებისთვის. მოდულის გამოსაყენებლად, უბრალოდ უნდა დააინსტალიროთ, ჩართოთ და გადატვირთოთ. არ არის საჭირო აურზაური, არ არის საჭირო საბაჟო ROM-ის გამორთვა (განსაკუთრებით მაშინ, როდესაც საბაჟო ROM-ები ყოველთვის არ არის ეფექტური არჩევანი), არ არის საჭირო APK-ის დეინსტალაცია სხვა ხელმოწერის სხვა ხელმოწერის დასაყენებლად. ყველაფერი რაც თქვენ გჭირდებათ არის root (აბსოლუტურად შეგიძლიათ გქონდეთ საბაჟო ROM და ამას აზრი აქვს ბევრ დროს; მაგრამ მიუხედავად იმისა, რომ Xposed-ს შეუძლია უზრუნველყოს ფუნქციების უმეტესი ნაწილი, რომელსაც შეუძლია უზრუნველყოს Custom ROM, ის ასევე სცილდება ამას).
ამ სიმარტივის მიღმა ბევრი სამუშაო დგას, თუმცა:
- მოდულის დეველოპერებისთვის მოწოდებული API უნდა იყოს სტაბილური და გარანტირებული. Xposed Framework არ შეიძლება შემთხვევით ჩავარდეს გარკვეული ROM და/ან ჰუკის კომბინაციებით (გამონაკლისი შემთხვევების გარდა). სხვა სიტყვებით რომ ვთქვათ, თუ მომხმარებელს აქვს პრობლემა, ეს პრობლემა ან მომხმარებლის ბრალი უნდა იყოს (არა რაღაცის სწორად ინსტალაცია/ჩართვა) ან მოდულის შემქმნელის ბრალია (შეცდომის არსებობა მოდული). მაგრამ თითქმის დარწმუნებული უნდა იყოს, რომ თავად ჩარჩო მუშაობს ისე, როგორც იყო დაგეგმილი და არ არის შეცდომების წყარო, რაც მომხმარებლებს იმედგაცრუებულს და დეველოპერებს დაბნეული დატოვებს.
- მომხმარებლებისთვის, ფრეიმერი ადვილად უნდა დააინსტალიროთ მათ მოწყობილობასა და ROM-ზე, არ აქვს მნიშვნელობა აქვს თუ არა Samsung-ს გაშვებული TouchWiz-ის უახლესი ვერსია თუ Nexus დაინსტალირებული LineageOS-ით. Xposed ინსტალერი ამუშავებს ყველაფერს კულისებში. ბევრი სამუშაო უნდა ჩატარდეს ინსტალერისა და ფრეიმერის შესამოწმებლად სხვადასხვა მოწყობილობებზე და ROM კომბინაციებზე. აღმოჩენილია შეცდომები, ხშირად OEM-ების მიერ განხორციელებული განსხვავებული განხორციელების გამო და უნდა გამოსწორდეს ყველა მომხმარებლისთვის საიმედოობის უზრუნველსაყოფად.
- ანდროიდის ძირითადმა გადახედვებმა შეიძლება ზოგჯერ მნიშვნელოვანი ცვლილებები მოიტანოს, რაც მოითხოვს ფრეივეირის არქიტექტურის ნაწილების გადახედვას ამ ცვლილებებთან ადაპტაციისთვის. ზოგჯერ, დამატებითი შესაძლებლობები ასევე ჩნდება უახლესი ვერსიებით, რაც მოითხოვს დამატებით დროს უკეთესი პროდუქტის მისაღებად. როდესაც ART პირველად დაინერგა, მაგალითად, Xposed-მა გამორთო გარკვეული ოპტიმიზაცია, რათა დამაგრებამ სწორად იმუშაოს. ნუგას შემთხვევაში,მხოლოდ დროში (JIT) შემდგენელი მოაქვს შესაძლებლობაშეინახეთ ეს ოპტიმიზაცია.
ბევრი ზემოაღნიშნული ნამუშევარი მიდის მცირე დეტალებში, სადაც ჩარჩოს უმეტესი ნაწილი ფუნქციონირებს ისე, როგორც ეს იყო დაგეგმილი, მაგრამ შეუსაბამობები და მცირე პრობლემები გახდის მას აზარტული თამაშების გამოყენებას მომხმარებლებისთვის და მხარდაჭერისა და განვითარების კოშმარად მოდულისთვის დეველოპერები. თუმცა გამოშვებული პროდუქტი მიზნად ისახავს იყოს ყველასთვის გამოსადეგი და მოულოდნელობის გარეშე. რა თქმა უნდა, არის გამონაკლისები, რადგან ზოგიერთი OEM-ის ცვლილებები მოითხოვს უფრო მეტ ძალისხმევას ადაპტაციისთვის, მაგრამ ეს არიან უმნიშვნელო და მომხმარებელთა დიდი უმრავლესობა (და დეველოპერები) სარგებლობენ სტაბილური და საიმედო Xposed-ით გამოცდილება. ნებისმიერი გამონაკლისი დოკუმენტირებულიამკაფიო უარი პასუხისმგებლობაზე რომ არავის გაუკვირდეს.
ზემოაღნიშნულის გათვალისწინებით, rovo89-ის ხედვა Xposed-ისთვის არის სტაბილური გადაწყვეტა, რომელიც უზრუნველყოფს საიმედო და ადვილად გამოსაყენებელ კონტრაქტს მომხმარებლებისა და დეველოპერებისთვის. მისი ფილოსოფია, თუმცა თქვენ არ ეთანხმებით მას, მარტივი და გასაგებია: პროდუქტი უნდა იყოს გამოშვებული მაშინ, როდესაც ის მზად იქნება გამოსაყენებლად, როგორც დანიშნულებისამებრ, რადგან ადრე გამოშვება უფრო მეტ პრობლემას იწვევს, ვიდრე სარგებელი.
abforce-ის Xposed ART ქვემოდული Nougat-ისთვის
ჩვენ არ გვსურს აბფორსის მუშაობას ვუწოდოთ "პორტი" ან "არაოფიციალური Xposed", რადგან ეს არაზუსტი და შეცდომაში შემყვანია. როგორც ვნახეთ, Xposed-ს აქვს ორი ძირითადი კომპონენტი:
- თავად Xposed ჩარჩოს ბირთვი, რომელიც უმკლავდება დამაგრების მეთოდების მაგიას.
- Xposed ინსტალერი, რომელიც უზრუნველყოფს ჩარჩოს მარტივად დაყენებას ყველა მოწყობილობაზე სწორად.
რაც აბფორსმა გააკეთა იყო rovo89-ის Marshmallow კოდის პორტირება პირველ ნაწილზე (მხოლოდ Xposed Framework) Nougat-ზე, ისე, რომ მოითხოვდა ცვლილებების გამოცხობას საბაჟო ROM-ის შედგენისას. გარდა ამისა, ჩარჩოს მრავალი მცირე (მაგრამ მნიშვნელოვანი) ნაწილი სრულად არ არის ადაპტირებული Nougat-თან. როგორც ასეთი, ქცევა შეიძლება იყოს არათანმიმდევრული და სანამ ის ძირითადად მუშაობს (თუმცა არაამისთვისყველას), არ არის სანდო. მოდულის დეველოპერებისა და მომხმარებლებისთვის, არასრული და არათანმიმდევრული განხორციელებაზე დაყრდნობა უბრალოდ იქნებოდა უზრუნველყოს ცუდი გამოცდილება ყველა მონაწილე მხარისთვის, თან ზოგიერთი მოდული საერთოდ არ მუშაობს ან იწვევს მოწყობილობის ჩატვირთვას. მიუხედავად იმისა, რომ ბევრი მომხმარებელი შეიძლება კმაყოფილი იყოს რაღაც ვიდრე არაფერიდეველოპერების თვალსაზრისი ჯერ კიდევ სავსებით გასაგებია (განსაკუთრებით, თუ გაითვალისწინებთ, რომ პასუხისმგებლობის უარყოფა არ წყვეტს ყალბ მხარდაჭერის კითხვებს და ტირილს).
(ზემოხსენებული ორი ძირითადი პუნქტის გარდა, ჩვენ ასევე მოველით დამატებით ცვლილებებს საბოლოო, ოფიციალურ Xposed ჩარჩოში, რათა ისარგებლოს Nougat-ში დანერგილი ცვლილებებით.)
უნდა აღინიშნოს, რომ აბფორსმა შესანიშნავად შეასრულა სამუშაო, როდესაც უმეტესობა კმაყოფილი იყო უბრალოდ ლაპარაკით, მაგრამ მისი ნამუშევარი შორს არის სრული Xposed გამოცდილებისგან და არცერთი დეველოპერი ან ბლოგი არ ამტკიცებს სხვას (და ნამდვილად არ ამტკიცებს; კიდევ ერთხელ, ჩვენ სხვა არაფერი გვაქვს, გარდა პატივისცემისა ყველა რეალური დეველოპერების მიმართ, რომლებიც რეალურ შრომას და ძალისხმევას დებენ ამაში). ფაქტობრივად, როგორც ცოტა ხანში შევეხებით, საზოგადოების ზოგიერთი პასუხი (იქნება ეს მომხმარებლები თუ „დეველოპერები“) განვითარებების ამ ჯაჭვში ერთადერთი ცუდი ნაწილია.
მოდით, გადავწყვიტოთ დევნა და პირდაპირ საქმეზე გადავიდეთ: ნებისმიერ საზოგადოებას აქვს ცუდი ელემენტები და ასპექტები. ისეთივე დიდი საზოგადოება, როგორიც ანდროიდის მოყვარულები არიან, ცუდი ელემენტები შეიძლება დიდი ნაწილი ჩანდეს, როდესაც ისინი მხოლოდ მცირე ნაწილია (დიდი, მაგრამ შედარებით მცირე). თუმცა, მისი შაქრის გარეშე, საზოგადოების ბევრი პასუხი Xposed for Nougat-ის განვითარებაზე იყო უკიდურესად ბავშვური, დაუფიქრებელი ან უპასუხისმგებლო.
პირველი მთავარი საკითხი იყო ბევრის მიერ გამოვლენილი დამამცირებელი დამოკიდებულება "Xposed-ის სიკვდილის" შესახებ, რადგან მას ძალიან დიდი დრო სჭირდება Nougat-ისთვის გამოშვებას. ეს მიუხედავად rovo89-ისა განახლებებიდაგარანტიები, და მიუხედავად იმისა, რომ Lollipop-თან მოხდა საკმაოდ ზუსტი სცენარი, როდესაც ART-ის საწყისი ვერსია დაინერგა. კარგია, რომ შეწყვიტოთ Xposed-ის გამოყენება, მაგრამ ეს არ არის ვინმეს შესაძლებლობების შეურაცხყოფა ან სხვებზე თავდასხმა იმის გამო, რომ განსხვავებული ფილოსოფია აქვთ ან არ უზრუნველყოთ თქვენი მოციმციმე საჭიროებების დაუყოვნებლივ დაკმაყოფილება. ეს კიდევ უფრო ეხება სრულიად უფასო პროექტს, სადაც დეველოპერმა გამოხატა თავისი განვითარების მეთოდოლოგია და მიზეზები.
საზოგადოების პასუხის კიდევ ერთი პრობლემა იყო აბფორსის მუშაობის ბუნების არასწორად გაგება. ამის მთავარი პრობლემა იყო „დეველოპერები“, რომლებიც ჩქარობენ შესთავაზონ ფლეშ ვერსიები ნაკლოვანებების გაგების გარეშე (ან არ აინტერესებთ), რადგან პასუხისმგებლობის უარყოფა არ ყოფილა. საერთოდ შემოთავაზებულია ზოგიერთ თემაში, ზოგიც კი მიდის იქამდე, რომ აფასებს აბფორსს და არა rovo89 (ვინ დგას Xposed-ზე ნამუშევრების დიდი უმრავლესობის უკან) და სხვა კონტრიბუტორები.
როგორც საბოლოო პუნქტი, ჩვენ ვგრძნობთ, რომ კიდევ ერთხელ უნდა გამოვიყენოთ rovo89-ის განვითარების ფილოსოფია. ბევრი ვოკალური მომხმარებელი ამტკიცებს, რომ უახლესი ცვლილებების ღია კოდირება სასარგებლო იქნება. მიუხედავად იმისა, რომ ეს კარგად ჟღერს თეორიულად, ეს ასეაარც ისე ადვილია პრაქტიკაში განსაკუთრებით თუ გავითვალისწინებთ rovo89-ის ახსნას:
[...] მე მჯერა, რომ მხოლოდ არსებული მდგომარეობის გამოდევნა არ დაეხმარება პროექტს. ჩვენ შეიძლება დავინახოთ "რაღაც" გამოშვება ძალიან სწრაფად იმ ადამიანების მიერ, რომლებიც ადგენენ კოდს, ვნახოთ, რომ ეს ასეა კარგად მუშაობენ და გამოაქვეყნებენ როგორც "მათ პორტს", მიუხედავად იმ საკითხებისა და გასაკეთებელი, რაც მათ არ იცოდნენ დან. ასე რომ ეგოისტი დამიძახეთ, მაგრამ არ ვისურვებდი ასეთ ნახევრად დასრულებულ გამოშვებას.[წყარო]
რაც რეალურად დადასტურდა, რომ საკმაოდ კარგი პროგნოზია არსებული ვითარების შესახებ, სადაც რამდენიმე „დეველოპერმა“ მიმართა abforce-ის ცვლილებები და შეთავაზება ციფრული ZIP-ს მინიმალური ან ყოველგვარი გაფრთხილებით, არასრული კრედიტებით, ეს ყველაფერი მოთხოვნის დროს შემოწირულობები.
ვიმედოვნებთ, რომ ამ ახსნა-განმარტებამ გაასუფთავა თქვენი ზოგიერთი ეჭვი და გაასწორა შესაძლო მცდარი წარმოდგენები, რომლებიც შესაძლოა გქონოდათ. Xposed იყო საოცარი პროექტი, რომელმაც მიაღწია ჩვენი ენთუზიასტთა და ფლეშჰოლიკთა საზოგადოების დიდ ნაწილს და Xposed for Nougat უნდა იყოს კიდევ ერთი გიგანტური ეტაპები, სავსე შესაძლებლობებით. მოდულებით, როგორიცაა GravityBox უკვე გვთავაზობს Nougat-ის მხარდაჭერას, rovo89-ის დასრულებული პროექტი დაუბრუნდება მრავალ ვარიანტს.
აღფრთოვანებული ხართ Xposed-ით თქვენს Nougat ROM-ზე? შეგვატყობინეთ კომენტარებში!