(黃獻德) Hsien-De Huang | E-Mail:TonTon (at) TWMAN.ORG | TonTon (痛痛)
Malware Analysis Network in Taiwan (MiT) | 惡意程式分析網在台灣 (抬丸郎)
Deep Learning (深度學習), Malware Analysis (惡意程式分析), Ontology (知識本體)
Android Reverse Engineering (Android 逆向工程), Type-2 Fuzzy Logic (第二型模糊邏輯)

ONE PIECE (海賊王)

ONE PIECE (海賊王)

2014年10月18日

Android 5.0 Lollipop and Import Android Project from Existing Code on ADT (Eclipse + Android Developer Tools plugin)

這兩天最夯的新聞應該就是這個了 (SORRY ~ 我是Google迷不是蘋果迷,開玩笑 ! 都幸運的參訪了 Google 台灣: http://blog.twman.org/2012/01/UK-London-10.html 跟 Google UK: http://blog.twman.org/2012/02/UK-London-11.html 怎還能是蘋果迷啊 ?) !!

http://www.android.com/versions/lollipop-5-0/
Google最具野心的平台 Android 5.0「棒棒糖」出爐
http://www.ithome.com.tw/news/91603 


加上上個月剛開箱過 SONY Xperia Z3 ... 當然就更不能錯過這個消息,然後好好研究一下了(雖然我還是一樣不擅於寫程式,但看懂人家寫的程式我想我勉強還算行 ~ Orz) 再加上 ~ We’re bringing Android 5.0; Lollipop to the entire Xperia Z Series ~ 這不研究一下怎對得起自己啊 ? (PS: 可以 SONY 手機似乎沒有 Android Runtime (ART))
http://blogs.sonymobile.com/2014/10/16/were-bringing-android-5-0-lollipop-to-the-entire-xperia-z-series/



Android 主管 Sundar Pichai 在 Google 官方部落格上寫道,Lollipop 是 Android 迄今為止最重大的版本更新。如 Google I/O 公布的預覽版一樣,Lollipop 是針對小到智慧手錶、手機、平板,大到電視以及汽車等螢幕所設計的。如何讓使用者在不同的裝置之間可以延續使用的經驗,並且讓同樣的內容在不同的裝置上都能用最好的方式呈現,就是Android 5.0的精神。
(Reference: http://www.techbang.com/posts/20451-android-50-the-lollipop-is-here )
這篇文章基本上已經把新功能做了很詳細的介紹 ~ 閒著沒事當然一定要去朝聖一下


當然網路上已經非常多關於 Android 5.0 相關的功能介紹了
世代大型更新!Android 5.0 Lollipop 15 點新功能完全整合
棒棒糖正式推出!Android 5.0 Lollipop 你應該知道的事

而更讓我蠢蠢欲動的則是總算讓我等到不是泡菜國製造的 NEXUS 6了啊 !!!



GOOGLE:10/17公佈新 API
most ambitious release on Android with over 5,000 new APIs for developers.

Android 5.0 Lollipop SDK and Nexus Preview Images
http://android-developers.blogspot.tw/2014/10/android-50-lollipop-sdk-and-nexus.html

Android 5.0 SDK Platform & Tools
Android 5.0 Emulator System Image - 32-bit & 64-bit (x86)
Android 5.0 Emulator System Image for Android TV (32-bit)
Android v7 appcompat Support Library for Material Design theme backwards capability
Android v17 leanback library for Android TV app support

上面說的是你可以下載上面所提 Android 5.0 相關的東西,像是 x64 等等;下面則分別提到如果是採用 NDK 或者是可以下載 Nexus 5 跟 7 的系統映像檔這樣

Android NDK for native C/C++ Android apps: NDK r10c with API level 21 support

Nexus 5 (GSM/LTE) “hammerhead” Device System Image
Nexus 7 (2013) - (Wifi) “razor” Device System Image

此外也提醒說怎樣做測試你的 APP 是不是可以用在 Android 5.0 上面,如果可以就記得設定 android:targetSdkVersion to "21"

Get the emulator system images through the SDK Manager or download the Nexus device system images.
Recompile your apps against Android 5.0 SDK, especially if you used any preview APIs. Note: APIs have changed between the preview SDK and the final SDK.
Validate that your current Android apps run on the new API 21 level with ART enabled. And if you use the NDK for your C/C++ Android apps, validate against the 64-bit emulator. ART is enabled by default on API 21 & new Android devices with Android 5.0.


至於下載 SDK 當然就是透過 Android SDK Manager 囉;不彷看一下官方較詳細的說明
http://developer.android.com/about/versions/lollipop.html

http://developer.android.com/about/versions/android-5.0.html

首先是 ART 的改進: 加強了 garbage collection (GC) debugging support,文中也大略說明了前面文章提到的很多新功能的 API 要怎樣調用;像是 Material design style 的 setColor() 以及 Lock screen visibility 的 setPublicVersion() 以及  setVisibility()

此外還有 User Interface 裡的 Material design support、WebView updates、Screen capturing and sharing;Notifications 的 Lock screen notifications、Notifications metadata;Graphics 的 Support for OpenGL ES 3.1;Media 的 Camera API for advanced camera capabilities、Audio playback、Media playback control、Media browsing;還有 Storage、Wireless & Connectivity、Bluetooth Low Energy 等;不過,說真的 ~ 我想 應該不會太多人直接把 APP 衝到 Android 5.0 吧 ! :D

好啦 ~ 講完一堆廢話該進入正題了 ! 那因為我基本上是壓根不會寫 JAVA 更不用說也 Android APP,不過多虧有我的Google大神老師在 (這邊要聲明,不是我不喜歡教人,而是我自己也很多不會的,自己都學不完了那有那麼大本事教人啊 !!! ),所以找到了不少資料 ... 或許不會很強,但最基礎的總是要搞懂啊 ! 而下面這個網站真的就整理的很不錯

http://blog.chinatimes.com/tomsun/category/6165.html


首先就是要找到有提供範例程式的地方啦 ~ 這時候不能漏掉的就是要到 GitHUB 挖寶了 !



再來則是從 FILE 裡新增一個 Project 並且選擇其型式為 Other


選擇了 "Android Project from Existing Code " 之後就可以 Finish 了 ... 然後就迫不及待的想要 Build 下去 ~ 結果悲劇發生了 ...


R cannot be resolved to a variable MainActivity.java

Error generating final archive: java.io.FileNotFoundException: xxx\bin\resources.ap_ does not exist MainActivity Unknown Android Packaging Problem

No resource identifier found for attribute 'showAsAction' in package 'android' main.xml /MainActivity/res/menu line 3 Android AAPT Problem


但這時真的就是只有大神才可以解救了 ... 首先是把 Build Auto 這選項取消掉


再來是選 Clean


到這邊基本上就是順利重新 Build 好囉


這邊的動作就是在做簽章


順利完成後當然就能看到下方的 Log 


最後,你可以選擇是要用 ADB 裝在模擬器或者是像我一樣直接用 USB 把檔案放進去


嘿嘿嘿 ~ 最後就來看看實際重新打包簽章後裝到手機的狀況吧 !!!
(這個動作也請自行 Google 吧 ... 相信我 ~ 只要有心有些東西是不應該希望別人教你的 ! )


2016/01/13 補充在 CentOS 6.7 上使用 Android-sdk 的 adb 的問題


libc.so.6: version `GLIBC_2.14' not found

checking LD_LIBRARY_PATH variable... contains current directory