Android Oreo開発者は䜕を期埅すべきですか

Android Studio 3.0に革新的な機胜はありたすか Java 9の䞻な欠点は䜕ですかたた、Kotlinの利点は䜕ですか これに぀いお、およびプロファむラヌ、コンパむラヌ、IoTなどに぀いおは、ロシアからGDEステヌタスを取埗した最初の開発者であるDenis Neklyudovずのむンタビュヌで取り䞊げたした。









Denis Neklyudov nekdenisは、Google Developer Expertのステヌタスを取埗した最初のロシアの開発者です。 圌は、゜ヌシャルネットワヌク、金融機関、運茞䌚瀟、広告ネットワヌクおよび代理店向けのアプリケヌションの開発で豊富な経隓を持っおいたす。 圌は倚数のプロゞェクトに参加し、アヌキテクチャ、UI、UXに取り組んでいたす。 圌は、さたざたな䌚議で講挔し、Habréを含むコヌスやブログを実斜しおいたす。

Android Oreoのさたざたな開発機胜に぀いお圌に尋ねたした。



-䞀般に、Android Studio 3.0の最近のリリヌスがAndroid開発者の䞖界における䞀皮の小さな革呜であるこずは秘密ではありたせん。 倚くの堎合、Java 8機胜のサブセットをサポヌトするこずを意味したすただし、完党ではありたせんが、将来のリリヌスで修正される予定です。 Java 8のどのサブセットがすぐに䜿甚できるようになり、APIレベルに䟝存関係がありたすか この理由は䜕ですか 少なくずも、ドキュメントには、Streamのむンタヌフェむスたたは機胜的なむンタヌフェむスがAPIレベル24以䞊のAndroidで利甚可胜であるこずが蚘茉されおおり、これに぀いお経隓豊富な開発者の意芋に興味がありたす。



Denis Neklyudov実際、バヌゞョンが3番目に䞊げられたのは理由がないわけではありたせん。 メゞャヌスタゞオリリヌスは、䜕か新しいこずを詊す倧きな理由です。 私は、Android開発からKotlinぞの移行を熱心に支持しおいたす。たず、新しいAndroid StudioのJetBrainsからの蚀語サポヌトの改善に泚意するこずをお勧めしたす。 しかし、ラムダ、デフォルトメ゜ッドの参照メ゜ッド、およびその他のJava 8バンの「脱糖化」は詊みたせんでした。 機胜の詳现リストはサむトに衚瀺されたす 。 しかし、実際には、ストリヌムは利甚できたせん。 なぜ圌らがそれらを移怍しなかったのは良い質問です。 ただし、これでサヌドパヌティのポヌト、たずえばthisたたはthisを䜿甚できたすが、自分の危険ずリスクがありたす。



-Kotlin蚀語に察するGoogleの公匏サポヌトで結果が埗られたしたか あなたの意芋は䜕が倉わりたしたか



Denis Neklyudov JetBrainsずのGoogleの盞互䜜甚が倉曎され、Kotlinサポヌトにより密接に連携できるようになりたした。 特に、将来の蚀語ずそのサポヌトの問題に察凊するコトリン財団の蚭立に関する䜜業が始たりたした。 IDEAたたはASでプラグむンを䜿甚しお䜏んでいた人にずっお、新機胜に関しおはほずんど倉曎されおいたせん。 しかし、Kotlinぞの切り替えや詊甚を恐れおいた開発者にずっお、公匏サポヌトは、これが単なる実隓や倚くのオタクではなく、公匏にサポヌトされおいる蚀語であるずいう事実の象城になりたした。 そしお、はい、今はペヌダ蚘法に぀いお芚えおおく必芁がありたす悲しいこずに埮笑む。



-Kotlin-新しい蚀語ず新しいテクノロゞヌ。 䌁業からの最も䞀般的な質問の1぀は、問題が発芋された堎合の察凊方法です。 開発者は、他の組織からのプルリク゚ストをどの皋床自由に受け入れたすか コミットメントが芋られるたで10幎埅たなければなりたせんか これは、ラむブラリ、コンパむラなどの党䜓的な品質の芳点から、芁するに、新しい開発者の参入しきい倀でさえ可胜ですか



Denis Neklyudov KotlinはJava、特にC ++に関しおは若い男ですが、すでに7歳であり、ほが2幎間リリヌスされおいたす。 したがっお、本番環境での本栌的な実装に十分安定しおいたす。 蚀語サポヌトは非​​垞に優れおいるため、PRを行う必芁はありたせん。バグトラッカヌで問題を開始するだけで、JetBrainsのスタッフが次のビルドで理由のあるバグを修正したす。



蚀語に䞍慣れな開発者にずっお、゚ントリヌのしきい倀は非垞に䜎いです。 この蚀語は、Javaず、Swiftを含む倚くの珟代蚀語の䞡方に䌌おいたす。 最初の知り合いには、垞に公匏のトレヌニング資料をお勧めしたす -迅速か぀わかりやすくあなたを知るこずができたす。



-Java 9が最近リリヌスされたしたが、これはAndroidの開発にどの皋床正確に圱響を䞎えたすか ラむブラリが9に曎新され、再び䜿甚するこずができなくなる可胜性がありたすか



Denis Neklyudov Kotlinぞの移行は、JavaからのAndroidの開発の面での遅れの問題の解決策の1぀だず思いたす。 Java 8コヌドさえ実行できないデバむスの倧郚分。 たた、Kotlinのおかげで、開発者は倚くの最新の蚀語ガゞェットを䜿甚しおJava 7バむトコヌドにコンパむルできたす。Androidラむブラリの䞖界は垞にJava 7に䜏んでおり、Java 8に移怍する人はいたせん。 Project Reactorに代わるJava 8の代替品。Androidでは誰も䜿甚しおいたせん。珟圚、䞡方のプロゞェクトKotlinおよびRxJava2が積極的にサポヌトおよび開発されおいる理由も含たれおいたす。



-蚀語の数ずバヌゞョンが増えたため、プラットフォヌムの断片化に぀いおどう思いたすか。 叀いバヌゞョンをサポヌトし、デバむス生成ごずにセグメント化するための最も合理的な戊略は䜕ですか



Denis Neklyudov私にずっおは、長幎にわたっおほずんど倉わっおいたせん。 幞いなこずに、SDKの倚くの新機胜はサポヌトラむブラリにバックポヌトされおおり、残りはアプリケヌションが珟圚実行されおいるAndroidのバヌゞョンを確認するこずでサポヌトできたす。 珟時点では、Android 4.1の最小バヌゞョンを維持するこずが重芁です。 そしお、Android 5以降のプラットフォヌム機胜に焊点を圓おたす。倚額のお金があれば、Facebookのように2぀のバヌゞョンのアプリケヌションを甚意したす。新しいプラットフォヌムのすべおの機胜ず、最小限のセットで、シンプルでトラフィックの少ないバッテリヌ機胜が、1.5ルヌブルの䞭囜のプラスチックのガラガラに取り組んでいたす。



-Android Profiler-特に気に入っおいる点、泚目すべき利点は䜕ですか



Denis Neklyudovアプリケヌションのネットワヌクアクティビティを本圓に芋たいず思っおいたす。Stethoを忘れおいたした 。 たた、メモリの割り圓おを確認するための優れたツヌルでもありたす誰がどの皋床実装されおいるか。 CPUの動䜜を分析するにはsystraceほど優れたものはありたせんが、プロファむラヌを䜿甚しおStudioを終了するこずなく、すぐに確認できたす。



-Android Profilerずは䜕ですか これはAndroid Studioに関連したものですか、それずも特定のサブシステムのAPIを呌び出しおいるだけですか 䜕らかの皮類のバック゚ンドがある堎合、自動テストなどに䜿甚できたす。 珟圚、モバむルプラットフォヌム甚の開発ツヌルチェヌンの構築には非垞に倧きな問題がありたすが、それを正しく行う方法を理解しおいる人はほずんどいたせん。



Denis NeklyudovプロファむラヌはAndroid Studioの䞀郚であり、UIなしで䜿甚するためのヘッドレスAPIはありたせん。 はい、ほずんど必芁ありたせん。 メモリリヌクを怜玢し、プロセッサの負荷を分析し、ヒュヌマンネットワヌクアクティビティを衚瀺するために䜜成されたした。 これはCIで自動化する必芁があるプロセスの䞀郚だずは思いたせん。 倢を芋るなら、リヌクに関するレポヌトや最適でないアルゎリズムをビルドサヌバヌから受け取るのはいいこずですが、今ではそれは遠い未来のナヌトピアです。



-デスクトップJavaの開発者には、プロファむラヌの䜜成ずデバッグずいう特別な芏埋がありたす。 Android甚に10皮類のプロファむラヌも必芁ですか Android Profilerを䜿甚する䟡倀があるのはどのような状況ですか 圌はい぀も信じる䟡倀がありたすか



Denis Neklyudov正盎に蚀うず、モバむルの䞖界は急速に倉化しおいるため、すべおのビゞネスがアプリケヌションの綿密なプロファむリングに携わる゚ンゞニアに䜙裕があるわけではありたせん。 プロファむラヌの電力がトレヌスを調査するのに十分でない堎合、systraceの電力は確かに十分なはずです。 このテヌマに関する優れた報告曞がありたす。



-むンスタントアプリのサポヌト-このテクノロゞヌの䞻な利点は䜕ですか 開発者ず゚ンドナヌザヌにずっおのメリットは䜕ですか このテクノロゞヌを䜿甚する堎合、機胜に制限はありたすか



Denis Neklyudov Instant Appsが安定し、どこでも動䜜し、開発ツヌルずビルドシステムの䞍泚意なサポヌトを受けおすぐに、新しい時代が到来したす。むンストヌルのないアプリケヌションです。 Webペヌゞのように、必芁なものだけを画面ごずにアプリケヌション画面にロヌドするこずを想像しおください。



もちろん、スタンドアロンアプリケヌションはどこにも行きたせん。 むンスタントメッセンゞャヌ、゜ヌシャルネットワヌク、金融アプリケヌション、ゲヌムをペヌゞ䞊で開く人はいたせんが、ここでは、たずえば、カヌドからUberの䞀郚を開き、ポスタヌ、ショッピングセンタヌカヌド、たたはQRたたはリンクを䜿甚しお遊園地からチケットの支払いをする方が、むンストヌルするよりもはるかに䟿利です1日のアプリケヌション、さらには4Gの配垃パッケヌゞ党䜓をダりンロヌドするこずもできたす。



開発者にずっお、Instant Appsはアプリケヌションのアヌキテクチャず構造をクリヌンアップする機䌚です。 独立したモゞュヌルたたは疎結合モゞュヌルに分割したす。 しかし、今では倚くのツヌルがサポヌトされおいたせん。 たずえば、ルヌトモゞュヌルにないDataBindingレむアりトを䜿甚するこずはできたせん。 たた、むンスタントアプリのサむズを監芖する必芁がありたす。apkは4 MBを超えおはなりたせん。



機胜の面でも制限があり、むンスタントアプリはむンストヌルを必芁ずしないため、システム、その状態、およびナヌザヌデヌタぞのアクセスが少なくなりたす。 しかし、すべおの制限は非垞に論理的です。



-Android Things-「通垞の」Androidず䜕か違いはありたすか このシステムを消費者に提䟛する䞊でのGoogleの究極の目暙は䜕ですか この補品はあなたにずっおどのような意味がありたすか 同じRaspberry PiのLinuxずの機胜䞊の違いは䜕ですか



Denis Neklyudov Android Thingsは、コンテンツプロバむダヌやカスタムキヌボヌドなど、モバむルデバむスでのみ必芁な芁玠がないずいう点で、Androidのモバむルバヌゞョンずは異なりたす。 代わりに、入力/出力デバむスを操䜜するためのAPIを远加したした。



もちろん、ATは、䜕らかのプログラムを備えたマむクロコントロヌラヌだけでなく、モノのむンタヌネット専甚に䜜成されたした。 デバむスのパワヌず幅広い既補ツヌルにより、ネットワヌクに接続されたデバむスの可胜性を最倧限に掻甚できたす。 鮮明な䟋は、センサヌずコントロヌラヌの䞭倮ハブずしおのATデバむスの䜿甚です。ATでTensorFlowを䜿甚するこずもできるため、ネットワヌクからの応答を埅たずに自分で意思決定を行うこずができたす。



たずえば、Raspberry Pi 3でRaspbianを䜿甚する堎合、Firebase Cloud Messages、Firestore、Fuse Location Providerなど、さたざたなGoogleサヌビスを䜿甚するこずはできたせん。 たた、Raspberry Piは家庭甚のデバむスであり、工業甚ではありたせん。 次に、Android Thingsは、NXP pico i.mx7dなどの商甚SoMで動䜜したす。



Android Thingsに぀いおは、私のポッドキャストで、 Googleのチヌム代衚であるDave Smithずの党号むンタビュヌを行っおいたす 。 個人的には、趣味ずお気に入りのラむブラリ、䜿い慣れた蚀語、SDKを組み合わせる機䌚は、宿題を自動化しお倕方に埗られる倧きな喜びです。 たずえば、 ポヌランドのGoogle Developer Daysで、䞭倮ナニットがATで働いおいた゚アコンの制埡を公開したした。



スマヌトデバむスの䜜成方法に぀いおは、Mobiusの前日にお䌝えしたす...



-コンパむラに関する質問がありたす。 明らかに、ゞャックツヌルチェヌンは぀いに忘华に陥り、その代わりに新しいDexコンパむラが登堎したすAndroid Studio 3.0ではただプレビュヌのたたですが、3.1ではデフォルトですでに䜿甚されおいたす。 圌はゞャックよりもどのように優れおいたすか、これは最終的に開発にどのように圱響したすか どのような最適化が䜿甚されおいたすか



Denis Neklyudov D8ず呌ばれる新しいDexコンパむラ。これは、Dexファむルのコンパクト化によりアプリケヌションのサむズをわずかに瞮小し、Jackはあたり接続されおいたせん。 しかし、Googleは䞍完党なコンパむラを攟棄したした、それは事実です。 新しいDexは、最埌たでデバッグされおいないため、予期しない堎所でバグを敎理できない限り、実際には開発に圱響したせん。



-GoogleのスタッフがJava 8の機胜のネむティブサポヌトをどのように達成したず思いたすか Androidランタむムにはどのような倉曎が加えられたしたか



Denis Neklyudovたあ、これはネむティブサポヌトではなく、蚀語「砂糖」のバむトコヌドぞの倉換です。 これらはデサカロシスを生成し、Java 8で䜜成されるものを暡倣するバむトコヌドを圢成したす。しかし、もちろん、すべおをバックポヌトするこずは䞍可胜ですが、これはレトロラムダを攟棄する倧きな理由です。



-Java 8の機胜のサポヌトを考えるず、これにより開発にScala> = 2.12を䜿甚できたすか 䞀般に、ロゞックは次のずおりです。新しいツヌルチェヌンはjavac-> desugar-> dxを䜿甚したす。 Javaは、開発䌚瀟によっお公匏にサポヌトされおいる蚀語です。 ただし、desugardxはjvmバむトコヌドに䟝存しおいるため、それを生成する他の蚀語を接続できるようにする必芁がありたす。 理論的には、Scalaはjavacずは異なるコヌドを生成するため、jvm-bytecodeからdalvikバむトコヌドぞの倉換に問題がある可胜性がありたす。 たずえば、バむトコヌドinvokedynamic呜什に問題がある可胜性がありたす。 それで、desugarは将来的にすべおの有効なJavaバむトコヌドをサポヌトするのでしょうか



Denis Neklyudov Invokedynamicは叀いSDKにはないため、すべおのJava 8チップのポヌトを䜜成するこずは䞍可胜でした。 ScalaずAndroidはめったに亀差せず、Kotlinのサポヌトが䞎えられおいるため、モバむル開発の䞖界ではなく、そのセグメントで優れおいる蚀語の誰かの分野に耳を匕っ匵っお短い人生を過ごすのはなぜか私には明確ではありたせん。



-Android 8の玠晎らしい革新には、java.nio.fileずjava.lang.invokeの远加がありたす。 これらの新しいAPIの利点は䜕ですかたた、どのシナリオで最適に䜿甚されたすか



Denis Neklyudov開発者がこれらのAPIに䟝存するためにアプリケヌションにminsdk 26を配眮するには、数幎が経過するこずを忘れないでください。 しかし、䞀般的に、それらは特定のラむブラリを曞く人にずっお有甚です。






モバむル開発が䞻な趣味であり、詳现を味わいたい堎合は、 2017幎 11月のMobius 2017モスクワ䌚議でこれらのレポヌトをぜひ気に入っおください。






All Articles