SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Linux
        Android



                  1
•
    • Web      Android      (?)

    •“                   Android”



• Android
• twitter : @checkela
                                    2
JAG




      3
NDK
• JNI                  • CPU
                             architecture
• NativeActivity
• OpenGL|ES            • Optimization
  (1.x,2.x)            • NEON
• OpenSL|ES
• Sensor       AndroidNDK
                            7/25

                                            4
• Android    Linux

 • Android           Linux

 •          Linux

 • Android                   ...
                                   http://www.androidproduction.com/
                                     smartphones/the-tablets-can-be-
                                   used-in-honeycomb-mounted-with-
                                               linux.html



                                                                       5
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •    ○○○

       •    ○○○

       •    ○○○

       •    ○○○

•
                     6
http://www.flickr.com/photos/katclay/3934856523/



(         )
                                                      7
Linux

• Android
 • CPU
 •          (   )

 • GUI

                    8
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •    ○○○

       •    ○○○

       •    ○○○

       •    ○○○

•
                     9
Ubuntu
•       Linux



•   Linux           + GUI +
            + ...

•           PC      Linux




                              10
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •    ○○○

       •    ○○○

       •    ○○○

       •    ○○○

•
                     11
(1/3)




        12
(2/3)




        13
(3/3)




        14
libraries
                     Application Framework

Application          Java               JNI

                                                    Linux




              Application Framework
                            Linux             API

                                                                   15
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •    ○○○

       •    ○○○

       •    ○○○

       •    ○○○

•
                     16
Android Ubuntu
      Android   Ubuntu

                2
       1
                    OK

                    PC




                         17
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •    ○○○

       •    ○○○

       •    ○○○

       •    ○○○

•
                     18
Linux

  Ubuntu




    Android(   )

    Linux          /


                       19
/
•
• Binder(IPC       )

•
•
• ApplicationFramework         (     logcat)

                     http://elinux.org/Android_Kernel_Features

                                                                 20
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •
       •    Binder

       •
       •
•
                     21
• Linux
•

          Ubuntu


          http://www.flickr.com/photos/ivanwalsh/4506526865/

                                                              22
•
    • UID:GID
    •
         SandBox            SandBox

           sa
                A                    B


                    http://www.flickr.com/photos/katmere/117444001/
                                                                 23
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •
       •    Binder

       •
       •
•
                     24
Binder
• IPC(Internal Procedure Call)
 •
    •   ls | sort -r

• AIDL(Android Interface Definition Language),
    Intent

•
                            http://www.flickr.com/photos/mrvelocipede/501749557/
                                                                                  25
Binder
SandBox               SandBox

  sa
        A                       B



                                    Intent
 Intent                Intent
 AIDL                  AIDL

             Binder


                                             26
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •
       •    Binder

       •
       •
•
                     27
• Ubuntu
 •

           ...?



                  28
(           )

•
    •
•           → CPU




                        29
wakelocks
• Sleep                                     !

 • )
 •
  (Java       )
  PowerManager pm = (PowerManager) getSystemService
  (Context.POWER_SERVICE);

  PowerManager.WakeLock wakeLock = pm.newWakeLock(
          pm.SCREEN_DIM_WAKE_LOCK, "My wakelook");

                                                      30
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •
       •    Binder

       •
       •
•
                     31
Android       Ubuntu Linux


   512MB        1GB     16GB
(Xperia acro)   +swap




                               32
(Android)

•
    • ashmem(android shared memory)
    • pmem(Physical Memory Allocator)
•
    • Out of Memory Handling
    • LowMemoryKiller
                                        33
(Android)

•
    • ashmem(android shared memory)
    • pmem(Processor Memory Allocator)
•
    • Out of Memory Handling
    • LowMemoryKiller
                                         34
•                         ?

•   Ubuntu

    •   OutOfMemory Handling


•   Android

    •   OutOfMemory Handling

    •   LowMemoryKiller

                               35
Ubuntu
•
    • OutOfMemoryHandling
    •               kill

• OOM
 •
 •                          Swap
                                   36
Android

•
    •        (Ubuntu   )

    • swap


                           37
Android       Ubuntu Linux


   512MB        1GB     16GB
(Xperia acro)   +swap




                               38
•
•

•


•   ...




          39
LowMemoryKiller
•

•
•

                  40
•                      &

    •                  >   > content provider

    •

•                  ?

    •   /init.rc


                                                41
/init.rc                  (                                             )
  # Define the oom_adj values for the classes of processes that can be
  # killed by the kernel. These are used in ActivityManagerService.
     setprop ro.FOREGROUND_APP_ADJ 0
     setprop ro.VISIBLE_APP_ADJ 1
     setprop ro.SECONDARY_SERVER_ADJ 2
     setprop ro.BACKUP_APP_ADJ 2
     setprop ro.HOME_APP_ADJ 4
     setprop ro.HIDDEN_APP_MIN_ADJ 7
     setprop ro.CONTENT_PROVIDER_ADJ 14
     setprop ro.EMPTY_APP_ADJ 15

  # Define the memory thresholds at which the above process classes will
  # be killed. These numbers are in pages (4k).
    setprop ro.FOREGROUND_APP_MEM 1536
    setprop ro.VISIBLE_APP_MEM 2048
    setprop ro.SECONDARY_SERVER_MEM 4096
    setprop ro.BACKUP_APP_MEM 4096
    setprop ro.HOME_APP_MEM 4096
    setprop ro.HIDDEN_APP_MEM 5120
    setprop ro.CONTENT_PROVIDER_MEM 5632
    setprop ro.EMPTY_APP_MEM 6144


                                                                            42
•   Linux

•   Ubuntu

•   Android

•   Android Ubuntu

•   Android

       •
       •    Binder

       •
       •
•
                     43
• PC            Android Linux



    • Android
•
    •
                                44
•



    45

Weitere ähnliche Inhalte

Was ist angesagt?

Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
 

Was ist angesagt? (20)

CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
Datadog による Container の監視について
Datadog による Container の監視についてDatadog による Container の監視について
Datadog による Container の監視について
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版hbstudy# 28 SELinux HandsOn 公開版
hbstudy# 28 SELinux HandsOn 公開版
 
Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界Android enterpriseで実現できる端末管理の世界
Android enterpriseで実現できる端末管理の世界
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
AndroidとSELinux
AndroidとSELinuxAndroidとSELinux
AndroidとSELinux
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門
 

Andere mochten auch

Chrome OS Observation
Chrome OS ObservationChrome OS Observation
Chrome OS Observation
Champ Yen
 
Play With Android
Play With AndroidPlay With Android
Play With Android
Champ Yen
 

Andere mochten auch (20)

Accelerated Android Development with Linaro
Accelerated Android Development with LinaroAccelerated Android Development with Linaro
Accelerated Android Development with Linaro
 
Chrome OS Observation
Chrome OS ObservationChrome OS Observation
Chrome OS Observation
 
Play With Android
Play With AndroidPlay With Android
Play With Android
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM Boards
 
Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoT
 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
 
Xvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisorXvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisor
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of Android
 
Priority Inversion on Mars
Priority Inversion on MarsPriority Inversion on Mars
Priority Inversion on Mars
 
Introduction to Android Window System
Introduction to Android Window SystemIntroduction to Android Window System
Introduction to Android Window System
 
Practice of Android Reverse Engineering
Practice of Android Reverse EngineeringPractice of Android Reverse Engineering
Practice of Android Reverse Engineering
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
進階嵌入式作業系統設計與實做 (2015 年秋季 ) 課程說明
進階嵌入式作業系統設計與實做 (2015 年秋季 ) 課程說明進階嵌入式作業系統設計與實做 (2015 年秋季 ) 課程說明
進階嵌入式作業系統設計與實做 (2015 年秋季 ) 課程說明
 
Design pattern
Design patternDesign pattern
Design pattern
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Interpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratchInterpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratch
 
2016 年春季嵌入式作業系統課程說明
2016 年春季嵌入式作業系統課程說明2016 年春季嵌入式作業系統課程說明
2016 年春季嵌入式作業系統課程說明
 
Design and Concepts of Android Graphics
Design and Concepts of Android GraphicsDesign and Concepts of Android Graphics
Design and Concepts of Android Graphics
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 

Ähnlich wie Linuxカーネルから紐解くAndroid

Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Opersys inc.
 

Ähnlich wie Linuxカーネルから紐解くAndroid (20)

Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Mobile operating systems
Mobile operating systemsMobile operating systems
Mobile operating systems
 
Linux I Ostala Druzina
Linux I Ostala DruzinaLinux I Ostala Druzina
Linux I Ostala Druzina
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Mobatsuku01
Mobatsuku01Mobatsuku01
Mobatsuku01
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
 
Apresentação Nano Server (tp5)
Apresentação Nano Server (tp5)Apresentação Nano Server (tp5)
Apresentação Nano Server (tp5)
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Dockerizing IoT Services
Dockerizing IoT ServicesDockerizing IoT Services
Dockerizing IoT Services
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)
 
Andriod software by sk
Andriod software by skAndriod software by sk
Andriod software by sk
 
LUG - Install Fest 2008
LUG - Install Fest 2008LUG - Install Fest 2008
LUG - Install Fest 2008
 
Lrug
LrugLrug
Lrug
 
Android Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesAndroid Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and Resources
 
Containers and security
Containers and securityContainers and security
Containers and security
 
Beating Android Fragmentation
Beating Android FragmentationBeating Android Fragmentation
Beating Android Fragmentation
 
Introduction to Gnu/Linux
Introduction to Gnu/LinuxIntroduction to Gnu/Linux
Introduction to Gnu/Linux
 
Mobile operating systems - Application Benchmarking
Mobile operating systems - Application BenchmarkingMobile operating systems - Application Benchmarking
Mobile operating systems - Application Benchmarking
 

Mehr von demuyan (13)

ソフトウェア開発の歴史を振り返る
ソフトウェア開発の歴史を振り返るソフトウェア開発の歴史を振り返る
ソフトウェア開発の歴史を振り返る
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)GDKとLLVM(横浜PF部向け)
GDKとLLVM(横浜PF部向け)
 
組込Android本の執筆環境
組込Android本の執筆環境組込Android本の執筆環境
組込Android本の執筆環境
 
ゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニングゲーム屋的パフォーマンスチューニング
ゲーム屋的パフォーマンスチューニング
 
Android&Web&Titanium
Android&Web&TitaniumAndroid&Web&Titanium
Android&Web&Titanium
 
Gdgd発表スライド
Gdgd発表スライドGdgd発表スライド
Gdgd発表スライド
 
Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門Android & BeagleBoardで組込入門
Android & BeagleBoardで組込入門
 
AppBank 村井氏 講演資料
AppBank 村井氏 講演資料AppBank 村井氏 講演資料
AppBank 村井氏 講演資料
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
いまさら聞けないRuby1.9
いまさら聞けないRuby1.9いまさら聞けないRuby1.9
いまさら聞けないRuby1.9
 
現在のCOM事情
現在のCOM事情現在のCOM事情
現在のCOM事情
 
Yet Another Development Language
Yet Another Development LanguageYet Another Development Language
Yet Another Development Language
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 

Linuxカーネルから紐解くAndroid

  • 1. Linux Android 1
  • 2. • Web Android (?) •“ Android” • Android • twitter : @checkela 2
  • 3. JAG 3
  • 4. NDK • JNI • CPU architecture • NativeActivity • OpenGL|ES • Optimization (1.x,2.x) • NEON • OpenSL|ES • Sensor AndroidNDK 7/25 4
  • 5. • Android Linux • Android Linux • Linux • Android ... http://www.androidproduction.com/ smartphones/the-tablets-can-be- used-in-honeycomb-mounted-with- linux.html 5
  • 6. Linux • Ubuntu • Android • Android Ubuntu • Android • ○○○ • ○○○ • ○○○ • ○○○ • 6
  • 8. Linux • Android • CPU • ( ) • GUI 8
  • 9. Linux • Ubuntu • Android • Android Ubuntu • Android • ○○○ • ○○○ • ○○○ • ○○○ • 9
  • 10. Ubuntu • Linux • Linux + GUI + + ... • PC Linux 10
  • 11. Linux • Ubuntu • Android • Android Ubuntu • Android • ○○○ • ○○○ • ○○○ • ○○○ • 11
  • 12. (1/3) 12
  • 13. (2/3) 13
  • 14. (3/3) 14
  • 15. libraries Application Framework Application Java JNI Linux Application Framework Linux API 15
  • 16. Linux • Ubuntu • Android • Android Ubuntu • Android • ○○○ • ○○○ • ○○○ • ○○○ • 16
  • 17. Android Ubuntu Android Ubuntu 2 1 OK PC 17
  • 18. Linux • Ubuntu • Android • Android Ubuntu • Android • ○○○ • ○○○ • ○○○ • ○○○ • 18
  • 19. Linux Ubuntu Android( ) Linux / 19
  • 20. / • • Binder(IPC ) • • • ApplicationFramework ( logcat) http://elinux.org/Android_Kernel_Features 20
  • 21. Linux • Ubuntu • Android • Android Ubuntu • Android • • Binder • • • 21
  • 22. • Linux • Ubuntu http://www.flickr.com/photos/ivanwalsh/4506526865/ 22
  • 23. • UID:GID • SandBox SandBox sa A B http://www.flickr.com/photos/katmere/117444001/ 23
  • 24. Linux • Ubuntu • Android • Android Ubuntu • Android • • Binder • • • 24
  • 25. Binder • IPC(Internal Procedure Call) • • ls | sort -r • AIDL(Android Interface Definition Language), Intent • http://www.flickr.com/photos/mrvelocipede/501749557/ 25
  • 26. Binder SandBox SandBox sa A B Intent Intent Intent AIDL AIDL Binder 26
  • 27. Linux • Ubuntu • Android • Android Ubuntu • Android • • Binder • • • 27
  • 28. • Ubuntu • ...? 28
  • 29. ( ) • • • → CPU 29
  • 30. wakelocks • Sleep ! • ) • (Java ) PowerManager pm = (PowerManager) getSystemService (Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(         pm.SCREEN_DIM_WAKE_LOCK, "My wakelook"); 30
  • 31. Linux • Ubuntu • Android • Android Ubuntu • Android • • Binder • • • 31
  • 32. Android Ubuntu Linux 512MB 1GB 16GB (Xperia acro) +swap 32
  • 33. (Android) • • ashmem(android shared memory) • pmem(Physical Memory Allocator) • • Out of Memory Handling • LowMemoryKiller 33
  • 34. (Android) • • ashmem(android shared memory) • pmem(Processor Memory Allocator) • • Out of Memory Handling • LowMemoryKiller 34
  • 35. ? • Ubuntu • OutOfMemory Handling • Android • OutOfMemory Handling • LowMemoryKiller 35
  • 36. Ubuntu • • OutOfMemoryHandling • kill • OOM • • Swap 36
  • 37. Android • • (Ubuntu ) • swap 37
  • 38. Android Ubuntu Linux 512MB 1GB 16GB (Xperia acro) +swap 38
  • 39. • • • • ... 39
  • 41. & • > > content provider • • ? • /init.rc 41
  • 42. /init.rc ( ) # Define the oom_adj values for the classes of processes that can be # killed by the kernel. These are used in ActivityManagerService. setprop ro.FOREGROUND_APP_ADJ 0 setprop ro.VISIBLE_APP_ADJ 1 setprop ro.SECONDARY_SERVER_ADJ 2 setprop ro.BACKUP_APP_ADJ 2 setprop ro.HOME_APP_ADJ 4 setprop ro.HIDDEN_APP_MIN_ADJ 7 setprop ro.CONTENT_PROVIDER_ADJ 14 setprop ro.EMPTY_APP_ADJ 15 # Define the memory thresholds at which the above process classes will # be killed. These numbers are in pages (4k). setprop ro.FOREGROUND_APP_MEM 1536 setprop ro.VISIBLE_APP_MEM 2048 setprop ro.SECONDARY_SERVER_MEM 4096 setprop ro.BACKUP_APP_MEM 4096 setprop ro.HOME_APP_MEM 4096 setprop ro.HIDDEN_APP_MEM 5120 setprop ro.CONTENT_PROVIDER_MEM 5632 setprop ro.EMPTY_APP_MEM 6144 42
  • 43. Linux • Ubuntu • Android • Android Ubuntu • Android • • Binder • • • 43
  • 44. • PC Android Linux • Android • • 44
  • 45. 45

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. http://groups.google.com/group/android-developers/browse_thread/thread/705cdfde2aa20ce4/dc0e0e872de9b0d2?lnk=raot\n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n