Suche senden
Hochladen
DevQuiz 2011 の模範解答 Android編
•
Als KEY, PDF herunterladen
•
3 gefällt mir
•
1,268 views
Makoto Yamazaki
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 17
Jetzt herunterladen
Empfohlen
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
Gradle by Example
Gradle by Example
Eric Wendelin
Your first patch to open stack
Your first patch to open stack
Akanksha Agrawal
Gradle enabled android project
Gradle enabled android project
Shaka Huang
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
Weaveworks
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKs
relayr
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
Neil Gehani
Empfohlen
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
Writing Commits for You, Your Friends, and Your Future Self
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
Gradle by Example
Gradle by Example
Eric Wendelin
Your first patch to open stack
Your first patch to open stack
Akanksha Agrawal
Gradle enabled android project
Gradle enabled android project
Shaka Huang
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
Weaveworks
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKs
relayr
Tugbot - Testing Framework for Docker Containers
Tugbot - Testing Framework for Docker Containers
Neil Gehani
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
Neil Gehani
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
OlinData
Introduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
Brent Laster
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Julien Dubois
Dependency management in golang
Dependency management in golang
Ramit Surana
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
OlinData
2017 jenkins world
2017 jenkins world
Brent Laster
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
Julien Dubois
PROMAND 2014 project structure
PROMAND 2014 project structure
Alexey Buzdin
Git tutorial
Git tutorial
Elli Kanal
Git and git workflow best practice
Git and git workflow best practice
Majid Hosseini
Git & GitHub for Beginners
Git & GitHub for Beginners
Sébastien Saunier
Introduction to Tekton
Introduction to Tekton
Victor Iglesias
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Ivan Nemytchenko
Github basics
Github basics
Radoslav Georgiev
Git and github fundamentals
Git and github fundamentals
RajKharvar
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Kaisei Hamamoto
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Nikhil Thomas
Core Android
Core Android
Dominik Helleberg
React inter3
React inter3
Oswald Campesato
Weitere ähnliche Inhalte
Was ist angesagt?
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
Neil Gehani
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
OlinData
Introduction to GitHub Actions
Introduction to GitHub Actions
Knoldus Inc.
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
Brent Laster
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Julien Dubois
Dependency management in golang
Dependency management in golang
Ramit Surana
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
OlinData
2017 jenkins world
2017 jenkins world
Brent Laster
Starting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
Julien Dubois
PROMAND 2014 project structure
PROMAND 2014 project structure
Alexey Buzdin
Git tutorial
Git tutorial
Elli Kanal
Git and git workflow best practice
Git and git workflow best practice
Majid Hosseini
Git & GitHub for Beginners
Git & GitHub for Beginners
Sébastien Saunier
Introduction to Tekton
Introduction to Tekton
Victor Iglesias
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Ivan Nemytchenko
Github basics
Github basics
Radoslav Georgiev
Git and github fundamentals
Git and github fundamentals
RajKharvar
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Kaisei Hamamoto
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Nikhil Thomas
Was ist angesagt?
(20)
Introducing "Tugbot" for Docker Containers
Introducing "Tugbot" for Docker Containers
FOSDEM 2017: GitLab CI
FOSDEM 2017: GitLab CI
Introduction to GitHub Actions
Introduction to GitHub Actions
Advanced Git: Functionality and Features
Advanced Git: Functionality and Features
JHipster overview and roadmap (August 2017)
JHipster overview and roadmap (August 2017)
Dependency management in golang
Dependency management in golang
Log monitoring with Logstash and Icinga
Log monitoring with Logstash and Icinga
2017 jenkins world
2017 jenkins world
Starting with Git & GitHub
Starting with Git & GitHub
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
PROMAND 2014 project structure
PROMAND 2014 project structure
Git tutorial
Git tutorial
Git and git workflow best practice
Git and git workflow best practice
Git & GitHub for Beginners
Git & GitHub for Beginners
Introduction to Tekton
Introduction to Tekton
Breaking Bad Habits with GitLab CI
Breaking Bad Habits with GitLab CI
Github basics
Github basics
Git and github fundamentals
Git and github fundamentals
Google Web Toolkitのすすめ
Google Web Toolkitのすすめ
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Cloud-Native CI/CD on Kubernetes with Tekton Pipelines
Ähnlich wie DevQuiz 2011 の模範解答 Android編
Core Android
Core Android
Dominik Helleberg
React inter3
React inter3
Oswald Campesato
Mobile Developers Talks: Delve Mobile
Mobile Developers Talks: Delve Mobile
Konstantin Loginov
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
Guillaume Laforge
Automated malware analysis
Automated malware analysis
Ibrahim Baliç
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Andreas Grabner
How to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
David M. Johnson
Using Geoscript Groovy
Using Geoscript Groovy
Jared Erickson
DIとトレイとによるAndroid開発の効率化
DIとトレイとによるAndroid開発の効率化
Tomoharu ASAMI
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
jClarity
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Xavier Hallade
React nativebeginner1
React nativebeginner1
Oswald Campesato
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
BGA Cyber Security
Aug penguin16
Aug penguin16
alhino
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
Android OS & SDK - Getting Started
Android OS & SDK - Getting Started
Hemant Chhapoliya
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
NAVER D2
Selendroid in Action
Selendroid in Action
Dominik Dary
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Amazon Web Services Japan
Ähnlich wie DevQuiz 2011 の模範解答 Android編
(20)
Core Android
Core Android
React inter3
React inter3
Mobile Developers Talks: Delve Mobile
Mobile Developers Talks: Delve Mobile
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
Automated malware analysis
Automated malware analysis
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
How to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
Using Geoscript Groovy
Using Geoscript Groovy
DIとトレイとによるAndroid開発の効率化
DIとトレイとによるAndroid開発の効率化
The Diabolical Developer's Guide to Surviving Java 9
The Diabolical Developer's Guide to Surviving Java 9
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
Mastering the NDK with Android Studio 2.0 and the gradle-experimental plugin
React nativebeginner1
React nativebeginner1
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
Aug penguin16
Aug penguin16
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Android OS & SDK - Getting Started
Android OS & SDK - Getting Started
Kandroid for nhn_deview_20131013_v5_final
Kandroid for nhn_deview_20131013_v5_final
Selendroid in Action
Selendroid in Action
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Mehr von Makoto Yamazaki
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
Custom lintcheckをつくろう
Custom lintcheckをつくろう
Makoto Yamazaki
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎
Makoto Yamazaki
ICS ホットトピック
ICS ホットトピック
Makoto Yamazaki
USB Host APIで遊んでみた
USB Host APIで遊んでみた
Makoto Yamazaki
20110619 live view ideathon_logcatonliveview
20110619 live view ideathon_logcatonliveview
Makoto Yamazaki
I/O 2011 報告会 ADKで遊んでみた
I/O 2011 報告会 ADKで遊んでみた
Makoto Yamazaki
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
Makoto Yamazaki
ぐだ生 Java入門第一回(equals hash code_tostring)
ぐだ生 Java入門第一回(equals hash code_tostring)
Makoto Yamazaki
20110326 ネットプリントの紹介
20110326 ネットプリントの紹介
Makoto Yamazaki
20110109 abc2010w gingerbread_api_storage
20110109 abc2010w gingerbread_api_storage
Makoto Yamazaki
Mehr von Makoto Yamazaki
(13)
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Custom lintcheckをつくろう
Custom lintcheckをつくろう
20120516 第7回ウフィカ社内ハンズオン Git基礎
20120516 第7回ウフィカ社内ハンズオン Git基礎
ICS ホットトピック
ICS ホットトピック
USB Host APIで遊んでみた
USB Host APIで遊んでみた
20110619 live view ideathon_logcatonliveview
20110619 live view ideathon_logcatonliveview
I/O 2011 報告会 ADKで遊んでみた
I/O 2011 報告会 ADKで遊んでみた
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第ニ回(synchronized and lock)
ぐだ生 Java入門第一回(equals hash code_tostring)
ぐだ生 Java入門第一回(equals hash code_tostring)
20110326 ネットプリントの紹介
20110326 ネットプリントの紹介
20110109 abc2010w gingerbread_api_storage
20110109 abc2010w gingerbread_api_storage
Kürzlich hochgeladen
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Kürzlich hochgeladen
(20)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
DevQuiz 2011 の模範解答 Android編
1.
DevQuiz
Android 2011/10/01 Open at Xi for Developer
2.
•
YAMAZAKI Makoto(twitter: @zaki50) 4988/5000 • Android • • StickyShortcut • ClaudiaVoice for Android • Java ( ) • GDD 2011 Japan ADK OpenCall
3.
DevQuiz • Google Developer
Day 2011 Japan
4.
Android •
AIDL Android AIDL package com.google.android.apps.gddquiz; interface IQuizService { String getCode(); }
5.
1 1. 2. 3.
AIDL
6.
1 1. 2. 3.
AIDL
7.
• • •
8.
•
apk • smali (dalvik assembler) • Java
9.
Step 1 apk •
apk zip smali apktool http://goo.gl/5U8U $ apktool d DevQuiz11Service_r1.apk I: Baksmaling... I: Loading resource table... I: Loaded. I: Loading resource table from file: /Users/zaki/apktool/framework/1.apk I: Loaded. I: Decoding file-resources... I: Decoding values*/* XMLs... I: Done. I: Copying assets and libs... $ ls DevQuiz11Service_r1 AndroidManifest.xml apktool.yml res smali
10.
smali • Dalvik .class
public Lcom/google/android/apps/gddquiz/gddquiz11service/DevQuiz11Service; .super Landroid/app/Service; .method static synthetic a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 1 invoke-static {p0, p1}, Lcom/google/android/apps/gddquiz/gddquiz11service/ DevQuiz11Service;->b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method • http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
11.
Step 2 • ProGuard •
Service $ cd DevQuiz11Service_r1/smali $ grep -rl ".super Landroid/app/Service" . ./com/google/android/apps/gddquiz/gddquiz11service/DevQuiz11Service.smali $ cat DevQuiz11Service.smali ( ) .method private static b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 6 ( ) const-string v2, "SHA-1" invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; ( )
12.
Step 2 • DevQuiz11Service#b
private DevQuiz11Service#a • DevQuiz11Service#a $ grep -rl DevQuiz11Service . ./gddquiz11service/a.smali ./gddquiz11service/DevQuiz11Service.smali ./gddquiz11service/DevQuiz11ServiceActivity.smali
13.
Step 3 Java •
.method private static b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 6 private static String getCode(String googleAccount, String passcode) { // googleAccount: p0, passcode: p1 // v0 v5 • static invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v0 String v0 = googleAccount.trim(); • const-string v2, "SHA-1" invoke-static {v2}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/ MessageDigest; move-result-object v2 MessageDigest v2 = MessageDigest.getInstance(“SHA-1”);
14.
Step 3 Java •
new-instance v3, Ljava/lang/StringBuilder; move-result-object v0 invoke-direct {v3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V StringBuilder v3 = new StringBuilder(v0); • if-lt v2, v3, :cond_0 if (v2 < v3) goto cond_0; // goto if-ne v3, v4, :cond_1 if (v3 != v4) goto cond_1; // goto • xor xor-int/2addr v3, v4 v3 ^= v4;
15.
Step 3 Java •
→ http://goo.gl/78W6s CodeGenerator.java
16.
Step 4
17.
• apktook
http://goo.gl/5U8U • Dalvik opcodes http://goo.gl/yUX3S • JUMPERZ.NET Blog: Android http://goo.gl/aVL3q • CodeGenerator.java http://goo.gl/78W6s
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen