Enviar búsqueda
Cargar
DevQuiz 2011 の模範解答 Android編
•
Descargar como KEY, PDF
•
3 recomendaciones
•
1,268 vistas
Makoto Yamazaki
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 17
Descargar ahora
Recomendados
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
Recomendados
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
Más contenido relacionado
La actualidad más candente
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
La actualidad más candente
(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
Similar a 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
Similar a 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
Más de 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
Más de 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
Último
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Último
(20)
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
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
Notas del editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Descargar ahora