Android Q საშუალებას მისცემს აპებს ჩაწერონ აუდიო სხვა აპებიდან და დააკვირდნენ მოწყობილობის ტემპერატურას

Android Q ამატებს ახალ API-ს სხვა აპლიკაციის შიდა აუდიოს ჩასაწერად და ასევე მოწყობილობის ტემპერატურის მონიტორინგისთვის.

გუგლი იძლევა და გუგლი ართმევს. Android-ის ყოველი ახალი გამოშვება შემოაქვს უამრავ ახალ API-ს, რომლებიც ან აუმჯობესებენ არსებული აპლიკაციების ფუნქციონირებას ან ხსნიან აპების ახალ კატეგორიებს. მეორეს მხრივ, Google ასევე ხსნის წვდომას ან ზღუდავს არსებულ API-ების შესაძლებლობებს Android პლატფორმის უსაფრთხოების გასაუმჯობესებლად. Android Q გამოშვება არ განსხვავდება და ჩვენ უკვე ბევრი ვისაუბრეთ მის ცვლილებებზე საზიარო მეხსიერებაში, ბუფერში წვდომაზე, შეტყობინებებსა და სხვა API-ებში. წლევანდელზე Google I/O დეველოპერის კონფერენცია, Google-მა გამოაცხადა ახალი API-ები Android Q-ში, რომლებიც განსაკუთრებით საინტერესოა მომხმარებლებისა და მობილური თამაშების დეველოპერებისთვის: AudioPlaybackCapture და თერმული API.

აუდიოს ჩაწერა სხვა აპებიდან AudioPlaybackCapture-ით Android Q-ში

მობილური თამაშები არის უზარმაზარი ინდუსტრია, რომელსაც არ აქვს შენელების ნიშნები უახლოეს მომავალში, განსაკუთრებით ისეთ ბაზრებზე, როგორიცაა აშშ, ჩინეთი და ინდოეთი. უფრო მეტი ადამიანი ატარებს დროს სმარტფონებზე თამაშებისა და სოციალური მედიისთვის, გასაკვირი არ არის, რომ ადამიანებს სურთ თავიანთი სათამაშო გამოცდილების ონლაინ გაზიარება.

ანდროიდს მხარს უჭერდა ეკრანის კადრების გადაღება თავიდანვე, მაგრამ ეკრანის ვიდეოების გადაღება მხარდაჭერილი იყო მხოლოდ Android 5.0 Lollipop-ის დანერგვით. MediaProjection API. სამწუხაროდ, ეს API არ აძლევს მესამე მხარის აპებს უფლებას ჩაწერონ შიდა აუდიო გამომავალი სხვა აპებში, აიძულეთ მესამე მხარის ეკრანის ჩამწერები ჩაწერონ გარე აუდიო გამომავალი მოწყობილობის მიკროფონიდან (ს). OEM-ები, როგორიცაა Samsung და Huawei უზრუნველყოს სისტემის აპლიკაციები შიდა აუდიო გამომავალი ეკრანის ჩაწერის დროს ჩასაწერად, მაგრამ ერთადერთი გზა სხვა მოწყობილობების მფლობელებისთვის, რომ სწორად ჩაწერონ ვიდეო და აუდიო გამომავალი მათი მოწყობილობებიდან, უნდა იყიდონ ა მესამე მხარის აქსესუარი. საბედნიეროდ, Google საბოლოოდ დანერგავს გზას Android Q-ში მესამე მხარის აპებისთვის აუდიოს ჩასაწერად სხვა აპებიდან.

AudioPlaybackCapture API Google-ის მიერ აღწერილია, როგორც ეკრანის გადაღების ანალოგი, მაგრამ აუდიო ჩაწერისთვის. თუმცა ერთადერთი აპი, რომელიც იყენებს API-ს, არის Google-ის პირდაპირი წარწერა, ხელმისაწვდომობის ხელსაწყო, რომელიც ამატებს სუბტიტრებს ნებისმიერ ვიდეოს, რომელიც უკრავს მოწყობილობაზე, API-ში დოკუმენტაციაში ნათქვამია, რომ მისი უპირველესი მიზანია ნება დართოს სტრიმინგ აპებს აუდიო არსების დაჭერაში თამაშობენ თამაშებით. იფიქრეთ, რომ მობილური მოთამაშეები ატრიალებენ თავიანთ სესიებს სერვისებზე, როგორიცაა Twitch ან YouTube. API შექმნილია ისე, რომ არ იმოქმედოს იმ აპლიკაციის აუდიო შეყოვნებაზე, რომლის აუდიო ჩაწერა ხდება, რაც შესანიშნავად აქცევს თამაშის ჩასაწერად, რათა აუდიო და ვიდეო არ იყოს დესინქრონირებული.

Android-ის ადრეული დღეებისგან განსხვავებით, Google-ის მიდგომა ახალ API-ებთან უფრო ფრთხილია. AudioPlaybackCapture შეიძლება გამოყენებულ იქნას მხოლოდ იმ შემთხვევაში, თუ აპი, რომლის აუდიო გადაღებაც ხდება, და აპლიკაცია, რომელიც ახორციელებს გადაღებას, აკმაყოფილებს კონკრეტულ მოთხოვნებს. აქ მოცემულია ამ მოთხოვნების შეჯამება:

  • იმისთვის, რომ აპის აუდიო მესამე მხარის აპმა გადაიღოს, შემდეგი მოთხოვნები უნდა აკმაყოფილებდეს:
    • აპს უნდა ჰქონდეს allowAudioPlaybackCapture დაყენებული ჭეშმარიტად ან გაუქმებული მათ Manifest-ში. (ეს ნაგულისხმევად არის true აპებისთვის, რომლებიც გათვლილია Android Q-ზე, მაგრამ შეიძლება ხელით დაყენდეს Android Pie-ზე გათვლილი აპებისთვის.)
    • აუდიოს მწარმოებელ აპს უნდა ჰქონდეს აუდიო გამოყენება USAGE_MEDIA, USAGE_GAME ან USAGE_UNKNOWN ტიპის.
    • აუდიო გადაღების პოლიტიკა (setAllowedCapturePolicy) უნდა იყოს დაყენებული ALLOW_CAPTURE_BY_ALL. ამ წესების დაყენება შესაძლებელია გაშვების დროს, მაგრამ დაკვრა ხელახლა უნდა დაიწყოს, რომ წესების ცვლილება ძალაში შევიდეს. თუ ALLOW_CAPTURE_BY_SYSTEM დაყენებულია, მაშინ მხოლოდ სისტემის აპებს შეუძლიათ აუდიოს ჩაწერა (მაგრამ შეზღუდულია რომ მათ არ შეუძლიათ აუდიოს შენახვა, მესამე მხარის აპისთვის გადაცემა ან > 16kHz 16-ბიტიანი მონო ჩაწერა ხარისხი.)
  • იმისათვის, რომ აპმა ჩაწეროს აუდიო სხვა აპიდან, უნდა აკმაყოფილებდეს შემდეგი მოთხოვნები:
    • აპმა უნდა გამოიტანოს MediaProjectionManager.createScreenCaptureIntent მოთხოვნა და მომხმარებელმა უნდა მიიღოს იგი.
      დადასტურების დიალოგი, რომელსაც მომხმარებლები ხედავენ, როდესაც აპი ცდილობს ეკრანის გადაღებას MediaProjection API-ის გამოყენებით.
    • აპლიკაციამ უნდა დაიჭიროს RECORD_AUDIO ნებართვა.
    • აპი უნდა იყოს იმავე მომხმარებლის პროფილში, როგორც აპლიკაცია, რომლის აუდიო ჩაიწერება.

მე წარმოვიდგენდი, რომ თამაშების უმეტესობა საშუალებას მისცემს მათი აუდიო აღბეჭდოს აპებმა, რომლებიც იყენებენ ამ ახალ API-ს, მაგრამ თამაშების განახლებას შეიძლება გარკვეული დრო დასჭირდეს მის მხარდასაჭერად. მეორეს მხრივ, ნუ მოელით მუსიკის ან ვიდეო ნაკადის აპს, რომელიც მხარს დაუჭერს ამ API-ს მესამე მხარისთვის ლიცენზირებასთან დაკავშირებული პრობლემების გამო. თუმცა, შეზღუდვები, რომლებიც Google-მა დააწესა, თუ აპი აუდიო გადაღების პოლიტიკაზე დააყენებს ALLOW_CAPTURE_BY_SYSTEM-ს, ნიშნავს, რომ მუსიკისა და ვიდეოს სტრიმინგის აპლიკაციების შემქმნელებმა კარგად უნდა გააკეთონ სისტემის მიერ აუდიო გადაღების ჩართვა ხელმისაწვდომობის გასაუმჯობესებლად.

Android Q-ში AudioPlaybackCapture API-ის შესახებ მეტის წასაკითხად იხილეთ ეს გვერდი.

თერმული API-ით შემცირების მონიტორინგი Android Q-ში

თერმული დათრგუნვა თითქმის მთლიანად იმართება სისტემის მიერ იმ აპლიკაციების შეყვანის გარეშე, ან თუნდაც შეტყობინებების გარეშე, რომლებიც ყველაზე მეტად ზარალდებიან. თუ მოწყობილობის რესურსები ზედმეტად დაძაბულია, მოწყობილობების უმეტესობა ამცირებს CPU და GPU სიჩქარეს თქვენი თამაშის შესრულების საზიანოდ. თქვენ, როგორც თამაშის დეველოპერს, ვერაფერს გააკეთებთ ამის შესახებ, გარდა იმისა, რომ გააფრთხილოთ მომხმარებელი, სანამ ისინი შეცვლიან პარამეტრებს იმ პოტენციური ზემოქმედების შესახებ, რომელიც მათმა ცვლილებებმა შეიძლება მოახდინოს შესრულებაზე.

თუმცა, Android Q-ში ახალი Thermal API-ით, აპებს შეუძლიათ მიიღონ გამოხმაურება შესრულების შემცირების სხვადასხვა ეტაპებზე. დეველოპერებს საშუალება აქვთ დაეხმარონ მოწყობილობის დატვირთვის შემცირებაში აქტივობების შემცირებით, რომლებიც საჭიროებენ მნიშვნელოვან CPU-ს, GPU-ს ან მოდემს გამოყენება. მაგალითად, თამაშს შეუძლია დინამიურად შეამციროს გარჩევადობა მანამ, სანამ მოწყობილობა აღარ აჩერებს GPU-ს, ან Maps-ის აპს შეუძლია გამორთოს გაუმჯობესებული ფუნქციები, როგორიცაა გაძლიერებული რეალობის ნავიგაცია CPU-ზე დატვირთვის შესამცირებლად.

ამ ახალი API-ს გამოსაყენებლად აპები არეგისტრირებენ მსმენელს PowerManager-ში (addThermalStatusListener) და სისტემა აპს უგზავნის ერთ-ერთ შემდეგ თერმული სტატუსის კოდს:

  • THERMAL_STATUS_NONE: "არ არის სტრესის ქვეშ."
  • THERMAL_STATUS_LIGHT: "სინათლის ჩახშობა, სადაც UX არ არის ზემოქმედება."
  • THERMAL_STATUS_MODERATE: "ზომიერი throttling სადაც UX დიდად არ არის დამოკიდებული."
  • THERMAL_STATUS_SEVERE: "მწვავე სტრესია, სადაც UX დიდ გავლენას ახდენს."
  • THERMAL_STATUS_CRITICAL: "პლატფორმამ ყველაფერი გააკეთა სიმძლავრის შესამცირებლად."
  • THERMAL_STATUS_EMERGENCY: "პლატფორმის ძირითადი კომპონენტები ითიშება თერმული მდგომარეობის გამო. მოწყობილობის ფუნქციონალობა შეზღუდული იქნება."
  • THERMAL_STATUS_SHUTDOWN: "საჭიროა სასწრაფოდ გამორთვა.

თერმული API-ს მხარდაჭერა აშკარად მოითხოვს Android Q-ს, მაგრამ კიდევ ერთი მოთხოვნაა ახალი HAL-ის დამატება. Google ამბობს, რომ Pixel მოწყობილობები Android Q-ზე (იგულისხმება Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Pixel 3a, და Pixel 3a XL) მხარს უჭერს Thermal API-ს, მაგრამ Google მუშაობს სხვა მოწყობილობების მხარდაჭერის დამატებაზე.

წაიკითხეთ მეტი შესახებ თერმული API აქ.