Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アンテナピクトをカスタマイズしてみよう
Search
umikaki
May 19, 2018
Programming
3
13k
アンテナピクトをカスタマイズしてみよう
2018/5/19開催 OSC名古屋2018で発表したスライドです。
umikaki
May 19, 2018
Tweet
Share
More Decks by umikaki
See All by umikaki
Tidy up my home LAN
umikaki5017
0
340
20190127_android_quick_settings
umikaki5017
0
400
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
250
Data-Centric Kaggle
isax1015
2
780
Featured
See All Featured
We Are The Robots
honzajavorek
0
170
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
エンジニアに許された特別な時間の終わり
watany
106
230k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Making Projects Easy
brettharned
120
6.6k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
Context Engineering - Making Every Token Count
addyosmani
9
670
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
Git: the NoSQL Database
bkeepers
PRO
432
66k
Building Applications with DynamoDB
mza
96
6.9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Transcript
"OESPJEͷΞϯςφϐΫτΛ ΧελϚΠζͯ͠ΈΑ͏ ʢʣ ౦ւಓΒ͙-JOVYϥΠτχϯάτʔΫେձˏ͋ͻΔম͖߹ઓਧ্ͷਞ !VNJLBLJ ɹIUUQTNBTUPEPOUSBJOJOGP!VNJLBLJ
࣍ ɹࣗݾհ ɹΞϯςφϐΫτͬͯԿʁ ɹΞϯςφϐΫτΛΧελϚΠζ͢Δʹʁ ɹΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ɹࠓޙͷల ɹ·ͱΊ
ࣗݾհ ͏Έ͔͖ʢ!VNJLBLJʣ ๏ ͱ͋ΔձࣾͷϓϩάϥϚʔ ๏ ओʹϞόΠϧϓϥοτϑΥʔϜͷΞϓϦ։ൃͯ͠·͢ ๏ ࠷ۙ"OESPJEͦͷͷΛΧελϚΠζ͢Δ͜ͱʹϋϚΔ ๏ NBTUPEPOͷḉཱͯ·ͨ͠
IUUQTNBTUPEPOUSBJOJOGPˡࣗḉ
ΞϯςφϐΫτͬͯԿʁ
ΞϯςφϐΫτͬͯԿʁ ͲͷϝʔΧʔͷΞΠίϯͰ͠ΐ͏ʁ ΞϯςφϐΫτʜݱࡏͷଓిঢ়گΛදࣔ͢Δͷ
ΞϯςφϐΫτΛΧελϚΠζ͢Δʹʁ
ΞϯςφϐΫτΛΧελϚΠζ͢Δʹʁ طଘͷ30.ͷ4ZTUFN6*BQLΛٯίϯύΠϧ 0SFPҎ߱4ZTUFN6*BQL͕PEFYԽ͞Ε͓ͯΓɺ ٯίϯύΠϧ͕ࠔ ιʔείʔυΛมߋ͠Ϗϧυ Ϗϧυ͢ΔʹɺͦΕͳΓͷεϖοΫͷϚγϯ͕ඞཁ
˞Ϗϧυํ๏ʹ͍ͭͯɺ΄ͨࢯͷϒϩάΛࢀর ɹʢʮ"OESPJEϏϧυʯͰάάΕग़͖ͯ·͢ʜʣ
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ΞϯςφϐΫτͷॲཧ4ZTUFN6*ʹهࡌ ˞-JOFBHF04ͷιʔεɿIUUQTHJUIVCDPN-JOFBHF04BOESPJE@GSBNFXPSLT@CBTF ΞϯςφϐΫτͷΞΠίϯɿQBDLBHFT4ZTUFN6*SFTESBXBCMF ΞΠίϯͷஔɿQBDLBHFT4ZTUFN6*SFTMBZPVU ΞΠίϯͷදࣔॲཧɿQBDLBHFT4ZTUFN6*TSDDPNBOESPJETZTUFNVJTUBUVTCBS 4JHOBM$MVTUFS7JFXKBWB
QBDLBHFT4ZTUFN6*TSDDPNBOESPJETZTUFNVJTUBUVTCBS QPMJDZ.PCJMF4JHOBM$POUSPMMFSKBWB
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ௨৴छผΞΠίϯ QBDLBHFT4ZTUFN6*SFTESBXBCMFҎԼ ˡYΞΠίϯ ˡ(ΞΠίϯ ˡ(ΞΠίϯ ˡ(
ΞΠίϯ ˡ&ΞΠίϯ ˡ(ΞΠίϯ ˡ)ΞΠίϯ ˡ) ΞΠίϯ ˡ-5&ΞΠίϯ ˡ-5& ΞΠίϯ
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ֤ΞΠίϯ9.-ʢϕΫλʔը૾ʣͰهࡌ ‣ "OESPJE4UVEJPΛ༻͍ͯ47(͔Β9.-ʹม͢Δ ࢀߟɿ͞·͟·ͳີʹద༻ՄೳͳϕΫλʔάϥϑΟοΫͷՃc"OESPJE%FWFMPQFS ɹɹɹɹIUUQTEFWFMPQFSBOESPJEDPNTUVEJPXSJUFWFDUPSBTTFUTUVEJP IMKB
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ిڧΞΠίϯ+BWBͰ࣮͞Ε͍ͯΔʂʂ ‣ QBDLBHFT4ZTUFN6*TSDDPNBOESPJETZTUFNVJTUBUVTCBSQIPOF 4JHOBM%SBXBCMFKBWB վ͢Δͷࢸͷۀʂʂ
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ΞΠίϯͷஔ QBDLBHFT4ZTUFN6*SFTMBZPVUҎԼ ˢϞόΠϧճઢͷσʔλ௨৴ϐΫτͱΞϯςφϐΫτͷஔΛઃఆ ˢ8J'JϐΫτͱΞϯςφϐΫτͷஔΛઃఆ ˢTJHOBM@DMVTUFS@WJFXYNM ˣNPCJMF@TJHOBM@HSPVQYNM
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ <FrameLayout android:id="@+id/wifi_combo" android:layout_height="wrap_content" android:layout_width="wrap_content" > <com.android.systemui.statusbar.AlphaOptimizedImageView android:theme="?attr/lightIconTheme" android:id="@+id/wifi_signal" android:layout_height="wrap_content"
android:layout_width="wrap_content" /> <com.android.systemui.statusbar.AlphaOptimizedImageView android:theme="?attr/darkIconTheme" android:id="@+id/wifi_signal_dark" android:layout_height="wrap_content" android:layout_width="wrap_content" android:alpha="0.0" /> <ImageView android:id="@+id/wifi_inout" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </FrameLayout> <!-- 〜〜(省略)〜〜 --> <LinearLayout android:id="@+id/mobile_signal_group" android:layout_height="wrap_content" android:layout_width="wrap_content" > </LinearLayout> <!-- 〜〜(省略)〜〜 --> </com.android.systemui.statusbar.SignalClusterView> <com.android.systemui.statusbar.SignalClusterView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/signal_cluster" android:layout_height="match_parent" android:layout_width="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:paddingEnd="@dimen/signal_cluster_battery_padding" > <!-- 〜〜(省略)〜〜 --> <FrameLayout android:layout_height="17dp" android:layout_width="wrap_content"> <ImageView android:id="@+id/wifi_in" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_activity_down" android:visibility="gone" android:paddingEnd="2dp" /> <ImageView android:id="@+id/wifi_out" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_activity_up" android:paddingEnd="2dp" android:visibility="gone" /> </FrameLayout> TJHOBM@DMVTUFS@WJFXYNM 8J'J௨৴ঢ়گΞΠίϯ 8J'JిڧΞΠίϯ ϞόΠϧΞΠίϯ
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <com.android.systemui.statusbar.AnimatedImageView android:theme="@style/DualToneLightTheme" android:id="@+id/mobile_signal" android:layout_height="wrap_content" android:layout_width="wrap_content" systemui:hasOverlappingRendering="false"
/> <com.android.systemui.statusbar.AnimatedImageView android:theme="@style/DualToneDarkTheme" android:id="@+id/mobile_signal_dark" android:layout_height="wrap_content" android:layout_width="wrap_content" android:alpha="0.0" systemui:hasOverlappingRendering="false" /> <ImageView android:id="@+id/mobile_type" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <ImageView android:id="@+id/mobile_roaming" android:layout_width="wrap_content" android:layout_height="17dp" android:paddingStart="22dp" android:paddingTop="1.5dp" android:paddingBottom="3dp" android:scaleType="fitCenter" android:src="@drawable/stat_sys_roaming" android:contentDescription="@string/accessibility_data_connection_roaming" android:visibility="gone" /> </FrameLayout> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:systemui="http://schemas.android.com/apk/res-auto" android:id="@+id/mobile_combo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <FrameLayout android:layout_height="17dp" android:layout_width="wrap_content"> <ImageView android:id="@+id/mobile_in" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_activity_down" android:visibility="gone" android:paddingEnd="2dp" /> <ImageView android:id="@+id/mobile_out" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_activity_up" android:paddingEnd="2dp" android:visibility="gone" /> </FrameLayout> NPCJMF@TJHOBM@HSPVQYNM ϞόΠϧ௨৴ঢ়گΞΠίϯ ௨৴छผ ΞΠίϯ ిڧΞΠίϯ ϩʔϛϯάΞΠίϯ
ΞϯςφϐΫτͷιʔεΛͬͯΈΑ͏ ΞΠίϯͷදࣔઃఆ QBDLBHFT4ZTUFN6*SFTWBMVFTDPOpHYNM ˡ௨৴Πϯδέʔλදࣔઃఆ ˡ-5&ଓ࣌(ͱදࣔ͢Δ͔Ͳ͏͔ ˢ-5&"ଓ࣌ɺ( -5&
ͱදࣔ͢Δ͔Ͳ͏͔
ΞϯςφϐΫτΛΧελϚΠζͯ͠Έͨ
ΞϯςφϐΫτΛΧελϚΠζͯ͠Έͨ ͜Μͳײ͡ʹͯ͠Έ·ͨ͠ ˞ιʔεHJUIVCͰެ։ͯ͠·͢ˣ ɹIUUQTHJUIVCDPN-JOFBHF:VJBOESPJE@GSBNFXPSLT@CBTF
ΞϯςφϐΫτΛΧελϚΠζͯ͠Έͨ ΞΠίϯσαΠϯมߋ w ֤௨৴छผΞΠίϯͷมߋ w ௨৴ঢ়گΞΠίϯͷมߋ w 8J'JిڧΞΠίϯͷมߋ
ΞΠίϯදࣔҐஔͷมߋ w ௨৴छผΞΠίϯΛిڧΞΠίϯͱಠཱ w ௨৴ঢ়گΞΠίϯΛ௨৴छผΞΠίϯͷԼʹ -5&ଓ࣌-5&ɺ-5&"ଓ࣌(ͱදࣔ w .PCJMF4JHOBM$POUSPMMFSKBWBͷॲཧมߋ
ࠓޙͷల
ࠓޙͷల 8J'Jଓ࣌ͷΞΠίϯόά w 8J'Jʹଓ͍ͯͯ͠ɺ ϞόΠϧ௨৴͕ߦΘΕͨͱ͖௨৴छผΞΠίϯΛද͍ࣔͨ͠ ిڧΞΠίϯͷมߋ w
BSSPXTΈ͍ͨͳΞΠίϯʹ͍ͨ͠ʂ
·ͱΊ
·ͱΊ ΞϯςφϐΫτͷΧελϚΠζํ๏ w 4ZTUFN6*BQLΛٯίϯύΠϧʢ/PVHBUҎલʣ w ιʔεΛվม͠Ϗϧυ ΞϯςφϐΫτͷॲཧ w
BOESPJE@GSBNFXPSLT@CBTFQBDLBHFT4ZTUFN6*ҎԼ w ΞϯςφϐΫτͷΞΠίϯɿSFTESBXBCMF w ΞΠίϯͷஔɿSFTMBZPVU w ΞΠίϯͷදࣔॲཧ ɹTSDDPNBOESPJETZTUFNVJTUBUVTCBS4JHOBM$MVTUFS7JFXKBWB ɹTSDDPNBOESPJETZTUFNVJTUBUVTCBSQPMJDZ.PCJMF4JHOBM$POUSPMMFSKBWB
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠