SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Android2.x/3.x/4.x




               2012/01/28
        @korodroid
■                     @korodroid
■       iplatform.org(http://www.iplatform.org/)
■       NTT


■            iplatform.org
    ■   Android                                    16



        9      10




                                                        2
➡     2.x/3.x/4.x




2.x


      4.x
3.x                 3
2.x/3.x/4.x
                     1apk




2.x-                 2.x-
                            4
2.x/3.x/4.x
                     1apk




3.x-                 3.x-
                            5
2.x/3.x/4.x
                     1apk




4.x-                 4.x-
                            6
•
•
•
• ,etc.


                   API
• Fragment?
• OptionMenu?ActionBar?
• ,etc.
                          7
small,normal,large,xlarge




                   •   xlarge screens are at least 960dp x 720dp
                   •   large screens are at least 640dp x 480dp
                   •   normal screens are at least 470dp x 320dp
                   •   small screens are at least 426dp x 320dp

•7”           5”                   large

•Android3.0
                                                                   8
sw<N>dp,w<N>dp,h<N>dp


    (a)layout-sw600dp              600dp
        (b)layout-w720dp   720dp
        (c)layout-h480dp   480dp



          (a)false               (a)false           (a)true
400dp     (b)true          960dp (b)false   720dp   (b)true
          (c)false               (c)true            (c)true


             960dp                                   1280dp   9
                                    400dp
sw<N>dp,w<N>dp,h<N>dp


     (a)layout-sw600dp           600dp
     (b)layout-w720dp    720dp
     (c)layout-h480dp    480dp


    •Developer
     ➡           Android3.2
         ➡small,normal,large,xlarge
         ➡         v11,v13
•                         dp
              GN         360x592(dp)     598x360(dp)   10
(A)
 •res/layout/main.xml
 •res/layout-sw600dp/main.xml
(B)
 •res/layout/main.xml
 •res/layout-sw600dp/main.xml
 •res/layout-sw720dp/main.xml
(C)
 •res/layout/main.xml
 •res/layout-w600dp/main.xml    11
API−Fragment
Pane




       Fragment A   Fragment B




                                 12
API−Fragment
Compatibility Package                           2.x

                              2.x              3.x              4.x

       Compatibility
       Package
       Compatibility
       Package


•Fragment
•Compatibility Package
   •              android.app.Fragment->android.support.v4.Fragment
   •              Activity->FragmentActivity
   •,etc.                                                             13
API−ActionBar
  Action Bar=




2.x-OptionMenu     3.x-ActionBar
                                   14
API−ActionBar
AndroidManifest

                                2.x                 3.x
 minSdk=     targetSdk=

   minSdk=8 targetSdk=8

   minSdk=8 targetSdk=11
                                      8:Android2.2, 11:Android3.0




                                          NG2
      NG1
                                                                15
API−ActionBar
AndroidManifest

                                     2.x            4.x(     )
 minSdk=     targetSdk=

   minSdk=8 targetSdk=8

   minSdk=8 targetSdk=11

                             8:Android2.2, 11:Android3.0


                                                ActionBar

     NG3                     NG4              showAsAction

                                                                 16
API−ActionBar
 AndroidManifest

                           2.x          3.x         4.x(         )
minSdk=     targetSdk=

  minSdk=8 targetSdk=8

  minSdk=8 targetSdk=11
                                       8:Android2.2, 11:Android3.0




                                                             4.x
          2.x                    3.x                             17
API−ActionBar
       AndroidManifest

                                  2.x         3.x       4.x(   )
   minSdk=        targetSdk=

        minSdk=8 targetSdk=8

        minSdk=8 targetSdk=11


•Java           XML             Manifest
  (                                         CaseByCase )
   ➡                  Blog
•ICS       Split ActionBar(             ActionBar   )
                                                               18
API−ActionBar
            OptionMenu         ActionBar

                        2.x            3.x            4.x

        OptionMenu

         ActionBar



    •2.x ActionBar            Compatibility Package
     ➡ActionBar               OptionMenu
       or                      ActionBarCompat
•              Action Bar OptionMenu
                ActionBar                                   19
Tips
1.wrap_content     fill_parent(match_parent)

     ➡px
     ➡Java                  px

2.
     ➡Android


3.Fragment
  ➡             Fragment
  ➡Activity Fragment
  ➡Fragment→Fragment                     IF
                                              20
Android                  Developer


•Supporting Tablets and Handsets
  http://developer.android.com/guide/practices/tablets-and-handsets.html


•Supporting Multiple Screens
  http://developer.android.com/guide/practices/screens_support.html


•Declaring Tablet Layouts for Android 3.2
 http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts

                                                                                        21
22

Weitere ähnliche Inhalte

Ähnlich wie Android2.x/3.x/4.x向けアプリ開発で気付いたこと

Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Esri Nederland
 

Ähnlich wie Android2.x/3.x/4.x向けアプリ開発で気付いたこと (20)

performance optimization: UI
performance optimization: UIperformance optimization: UI
performance optimization: UI
 
One APK to rule them all
One APK to rule them allOne APK to rule them all
One APK to rule them all
 
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]What’s new in aNdroid [Google I/O Extended Bangkok 2016]
What’s new in aNdroid [Google I/O Extended Bangkok 2016]
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
 
Automated malware analysis
Automated malware analysisAutomated malware analysis
Automated malware analysis
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 
JS digest. February 2017
JS digest. February 2017JS digest. February 2017
JS digest. February 2017
 
a friend in need-a js indeed / Yonatan levin
a friend in need-a js indeed / Yonatan levina friend in need-a js indeed / Yonatan levin
a friend in need-a js indeed / Yonatan levin
 
A friend in need - A JS indeed
A friend in need - A JS indeedA friend in need - A JS indeed
A friend in need - A JS indeed
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Mobile operating systems - Application Benchmarking
Mobile operating systems - Application BenchmarkingMobile operating systems - Application Benchmarking
Mobile operating systems - Application Benchmarking
 
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPFCilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium: Kernel Native Security & DDOS Mitigation for Microservices with BPF
 
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPFCilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
Cilium – Kernel Native Security & DDOS Mitigation for Microservices with BPF
 
mongodb-introduction
mongodb-introductionmongodb-introduction
mongodb-introduction
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 

Mehr von Kenichi Kambara

Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2
Kenichi Kambara
 
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイントHello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイント
Kenichi Kambara
 

Mehr von Kenichi Kambara (20)

Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
Hello Flutterの次におさえたい Flutterのポイント その6 (レイアウト編)
 
Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5Hello Flutter”の次におさえたい Flutterのポイント その5
Hello Flutter”の次におさえたい Flutterのポイント その5
 
[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門[ABC2018Spring]Flutterアプリ開発入門
[ABC2018Spring]Flutterアプリ開発入門
 
“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4“Hello Flutter”の次におさえたい Flutterのポイント その4
“Hello Flutter”の次におさえたい Flutterのポイント その4
 
[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Sandbox[Google I/O 2018 Highlights] Sandbox
[Google I/O 2018 Highlights] Sandbox
 
[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS[Google I/O 2018 Highlights] Flutter / WearOS
[Google I/O 2018 Highlights] Flutter / WearOS
 
"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3"Hello Flutter"の次におさえたいFlutterのポイントその3
"Hello Flutter"の次におさえたいFlutterのポイントその3
 
Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2Hello Flutterの次におさえたいFlutterのポイントその2
Hello Flutterの次におさえたいFlutterのポイントその2
 
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsI/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物Tips
 
Hello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイントHello Flutterの次におさえたいFlutterのポイント
Hello Flutterの次におさえたいFlutterのポイント
 
Developing Android Apps for Google Assistant
Developing Android Apps for Google AssistantDeveloping Android Apps for Google Assistant
Developing Android Apps for Google Assistant
 
Google Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイントGoogle Assistant対応アプリ開発3つのポイント
Google Assistant対応アプリ開発3つのポイント
 
10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ10分で作るGoogle Assistant対応アプリ
10分で作るGoogle Assistant対応アプリ
 
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
 
Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例Android O (Picture In Picture)入門+実装例
Android O (Picture In Picture)入門+実装例
 
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
 
Android O (Beta) Topics
Android O (Beta) TopicsAndroid O (Beta) Topics
Android O (Beta) Topics
 
Publishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 AppsPublishing Android Wear 2.0 Apps
Publishing Android Wear 2.0 Apps
 
Android Studio 2.3 New Features
Android Studio 2.3 New FeaturesAndroid Studio 2.3 New Features
Android Studio 2.3 New Features
 
Android 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+αAndroid 7.0 Nougat マルチウィンドウ解説+α
Android 7.0 Nougat マルチウィンドウ解説+α
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
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)

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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 

Android2.x/3.x/4.x向けアプリ開発で気付いたこと

  • 1. Android2.x/3.x/4.x 2012/01/28 @korodroid
  • 2. @korodroid ■ iplatform.org(http://www.iplatform.org/) ■ NTT ■ iplatform.org ■ Android 16 9 10 2
  • 3. 2.x/3.x/4.x 2.x 4.x 3.x 3
  • 4. 2.x/3.x/4.x 1apk 2.x- 2.x- 4
  • 5. 2.x/3.x/4.x 1apk 3.x- 3.x- 5
  • 6. 2.x/3.x/4.x 1apk 4.x- 4.x- 6
  • 7. • • • • ,etc. API • Fragment? • OptionMenu?ActionBar? • ,etc. 7
  • 8. small,normal,large,xlarge • xlarge screens are at least 960dp x 720dp • large screens are at least 640dp x 480dp • normal screens are at least 470dp x 320dp • small screens are at least 426dp x 320dp •7” 5” large •Android3.0 8
  • 9. sw<N>dp,w<N>dp,h<N>dp (a)layout-sw600dp 600dp (b)layout-w720dp 720dp (c)layout-h480dp 480dp (a)false (a)false (a)true 400dp (b)true 960dp (b)false 720dp (b)true (c)false (c)true (c)true 960dp 1280dp 9 400dp
  • 10. sw<N>dp,w<N>dp,h<N>dp (a)layout-sw600dp 600dp (b)layout-w720dp 720dp (c)layout-h480dp 480dp •Developer ➡ Android3.2 ➡small,normal,large,xlarge ➡ v11,v13 • dp GN 360x592(dp) 598x360(dp) 10
  • 11. (A) •res/layout/main.xml •res/layout-sw600dp/main.xml (B) •res/layout/main.xml •res/layout-sw600dp/main.xml •res/layout-sw720dp/main.xml (C) •res/layout/main.xml •res/layout-w600dp/main.xml 11
  • 12. API−Fragment Pane Fragment A Fragment B 12
  • 13. API−Fragment Compatibility Package 2.x 2.x 3.x 4.x Compatibility Package Compatibility Package •Fragment •Compatibility Package • android.app.Fragment->android.support.v4.Fragment • Activity->FragmentActivity •,etc. 13
  • 14. API−ActionBar Action Bar= 2.x-OptionMenu 3.x-ActionBar 14
  • 15. API−ActionBar AndroidManifest 2.x 3.x minSdk= targetSdk= minSdk=8 targetSdk=8 minSdk=8 targetSdk=11 8:Android2.2, 11:Android3.0 NG2 NG1 15
  • 16. API−ActionBar AndroidManifest 2.x 4.x( ) minSdk= targetSdk= minSdk=8 targetSdk=8 minSdk=8 targetSdk=11 8:Android2.2, 11:Android3.0 ActionBar NG3 NG4 showAsAction 16
  • 17. API−ActionBar AndroidManifest 2.x 3.x 4.x( ) minSdk= targetSdk= minSdk=8 targetSdk=8 minSdk=8 targetSdk=11 8:Android2.2, 11:Android3.0 4.x 2.x 3.x 17
  • 18. API−ActionBar AndroidManifest 2.x 3.x 4.x( ) minSdk= targetSdk= minSdk=8 targetSdk=8 minSdk=8 targetSdk=11 •Java XML Manifest ( CaseByCase ) ➡ Blog •ICS Split ActionBar( ActionBar ) 18
  • 19. API−ActionBar OptionMenu ActionBar 2.x 3.x 4.x OptionMenu ActionBar •2.x ActionBar Compatibility Package ➡ActionBar OptionMenu or ActionBarCompat • Action Bar OptionMenu ActionBar 19
  • 20. Tips 1.wrap_content fill_parent(match_parent) ➡px ➡Java px 2. ➡Android 3.Fragment ➡ Fragment ➡Activity Fragment ➡Fragment→Fragment IF 20
  • 21. Android Developer •Supporting Tablets and Handsets http://developer.android.com/guide/practices/tablets-and-handsets.html •Supporting Multiple Screens http://developer.android.com/guide/practices/screens_support.html •Declaring Tablet Layouts for Android 3.2 http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts 21
  • 22. 22