『壹』 怎樣查看 android APP源代碼
將apk文件拷貝至sdcard上。
命令順序如下:
進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,
其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:
在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!
『貳』 常見的操作系統有哪些
1,Microsoft Windows
Microsoft Windows操作系統是美國微軟公司研發的一套操作系統,它問世於1985年。Windows採用了圖形化模式GUI,比起從前的DOS需要鍵入指令使用的方式更為人性化。
2,Linux
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。
3,Android
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。
4,iOS
iOS是由蘋果公司開發的移動操作系統。蘋果公司最早於2007年1月9日的Macworld大會上公布這個系統,最初是設計給iPhone使用的,後來陸續套用到iPod touch、iPad以及Apple TV等產品上。
5,Mac OS
Mac OS是一套運行於蘋果Macintosh系列電腦上的操作系統。Mac OS是首個在商用領域成功的圖形用戶界面操作系統。現行的最新的系統版本是macOS 10.14.4 ,且網上也有在PC上運行的Mac系統,簡稱 Mac PC。
『叄』 常見的電腦操作系統有哪些
1,Microsoft Windows
Microsoft Windows操作系統是美國微軟公司研發的一套操作系統,它問世於1985年。Windows採用了圖形化模式GUI,比起從前的DOS需要鍵入指令使用的方式更為人性化。
2,Linux
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。
3,Android
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。
4,iOS
iOS是由蘋果公司開發的移動操作系統。蘋果公司最早於2007年1月9日的Macworld大會上公布這個系統,最初是設計給iPhone使用的,後來陸續套用到iPod touch、iPad以及Apple TV等產品上。
5,Mac OS
Mac OS是一套運行於蘋果Macintosh系列電腦上的操作系統。Mac OS是首個在商用領域成功的圖形用戶界面操作系統。現行的最新的系統版本是macOS 10.14.4 ,且網上也有在PC上運行的Mac系統,簡稱 Mac PC。
『肆』 Android系統原理及開發要點詳解的前 言
Android 是Google歷經數年和投資數億美元開發出來的智能手機系統,Google也發起了圍繞Android的組織——開放手機聯盟,其英文全稱為「Open Handset Alliance」。
隨著各大移動終端生產商大力開發和生產基於Android的移動智能設備,Android迅速得到業界和社會的認可,並成為整個產業的熱點,基於Android平台的各類人才逐漸成為各大企業競相爭奪的焦點。
Android系統是一個開放的系統,任何公司、個人開發者、愛好者都可以參與其中。對於技術工作者,Android不僅是一個智能手機的系統,也可以作為學習嵌入式Linux系統的較完整的軟體平台。
Android是一個較新的系統和技術,因此介紹Android的資料和書籍還比較少,尤其簡體中文的書籍,相對更少。本書《Android系統原理及開發要點詳解》 是一本綜合介紹Android系統的書,集合了Androidin社區多位專家作者的經驗,精心編寫而成。
Android 作為一個龐大的系統,包括了Linux操作系統、各種本地程序、虛擬機和運行環境、Java框架和Java應用程序多方面的內容。這對於初學者是一個非常大的挑戰,因此對於學習、研究進而開發Android系統來說,掌握系統的脈絡和使用恰當的學習方法是非常重要的,這也是本書的組織主旨。
本書特點
為了適應Android系統的情況,本書在內容的編排和組織上具有以下一些重要特點。
保持完整性和層次性
本書緊緊把握Android系統的4個層次,分章節介紹,並且有重點地介紹了Android整個系統的代碼結構、編譯系統、相關工具、各部分組織等全局性內容。這將讓讀者即使只花費較短的時間,也可以獲得對Android系統大致的感性理解。
提供清晰的框架
Android是一個有數百兆大小的較大系統,各部分之間是有機聯系的,這就要求Android的學習和開發者需要具有一些軟體架構方面的知識。本書為Android整體和重點模塊繪制了大量的框圖,這樣非常有利於幫助讀者直觀地理解系統。本書在講述每一個部分時,均列出相關代碼的路徑,幫助讀者對應著進行快速、高效地學習。
抓核心內容
Android系統已經發布了若干個版本:1.0、1.5(cupcake)、1.6(donut)和2.0(eclair),從開發的角度,各個版本在同時使用,這對於學習者是一個較大的挑戰。因此本書作者通過把握Android演進中脈絡,盡量總結出共性的內容展示給讀者。在某些部分,在講解代碼的同時,突出概念性的內容。本書力求通過一本教材,給讀者一個長期的、穩定的學習方法和思路。
開發細節
Android 包含眾多的軟體、程序和工具,涉及軟體開發各個方面。在實際的開發過程中,很多內容並不需要開發者去改動。本書從工程的角度出發,偏重開發中常用的內容,對於開發中較少涉及的部分,僅做精煉的大致介紹。本書重點介紹顯示機制、輸入機制、音頻/視頻系統的移植層、多媒體系統的構建、電話系統的構建、連接系統的構建、感測器的移值、應用開發中最常涉及的部分,在每段講解中,穿插了開發中可以使用的一些技巧。
本書內容
本書的各個章節及其組織方式如下所示。
第1章「Android系統概述」,概述Android系統方面的內容,包括智能手機平台的發展歷程、Android系統的特點、Android的3種開發工作,以及Android的2種不同的開發方式。
第2章「Android系統開發綜述」,介紹Android系統開發的綜述性內容,包括工具使用、獲得代碼、編譯系統、模擬器運行、SDK使用等。
第3章「Android的Linux內核與驅動程序」,介紹Android內核的特點、Android中使用的專用驅動程序、Android系統可能使用的標准設備驅動。
第4章「Android的底層庫和程序」,介紹Android系統的基礎程序,以本地程序為主。
第5章「Android的Java虛擬機和Java環境」,這是介於本地和Java層之間的相關內容,主要介紹Android的Java虛擬機Dalvik的基本概念、Android Java程序的環境、JNI的使用方法,以及Java框架的啟動流程等。
第6章「Android的GUI系統」,包括Android GUI系統架構、底層的pixelflinger和libui庫、Surface系統、Skia和2D圖形系統、Android的OpenGL和3D圖形系統等內容。
第7章「Android的Audio系統」,主要是音頻的輸入輸出環節,音頻系統從驅動程序、本地框架到Java框架都具有內容。
第8章「Android的Video輸入輸出系統」,介紹Android的Video輸入輸出系統,包括Overlay系統和Camera系統兩個部分,前者只有本地的內容,後者各個層次均有內容。
第9章「Android的多媒體系統」,介紹Android的多媒體系統的核心部分,包括Android中多媒體系統的業務、結構、多媒體系統的核心框架、OpenCore系統結構和使用等內容。
第10章「Android的電話部分」,介紹Android系統在電話方面的功能,Android是智能手機系統,電話是其核心部分。
第11章「Android的連接部分」,主要包括WiFi、藍牙及定位系統等,這些Android的連接部分也具有從驅動層到Java應用層的結構。
第12章「Android的感測器系統」,感測器系統涉及Android的各個層次,具有完整的結構,相比其他系統,感測器系統的各個層次都比較簡單。
第6~12章分模塊介紹Android的幾個核心系統,主要是本地框架和Java框架方面的內容,兼顧應用程序和驅動層,這是本書的重點。
第13章「Android應用程序概述及框架」,介紹Android應用程序層的基本概念和應用程序框架,這部分內容是Android自下而上的第4個層次,可以基於源代碼或者SDK開發,它們之間的差別非常小。
第14章「Android應用程序的主要方面」,介紹Android應用程序層開發的各個方面,基本上是橫向內容,包括應用程序的基本控制、各種UI元素的使用、圖形API使用3個方面的內容。
第15章「Android應用程序的設計思想」,本章的內容是基於通用的應用程序和GUI程序的通用設計思想,結合Android系統自身的特點,提出一些值得注意的問題和設計方法。
本書讀者
本書適應廣大的讀者群,力求在Android的系統移植、應用程序開發、系統框架改進方面給讀者全面的支持。不同的讀者在學習本書時,應該使用不同的方法。
Android初級開發者:在本書指引下閱讀代碼,搭建系統開發環境,對於Android應用程序的開發者,重點關注後3章的內容。
Android中、高級開發者:通過本書的引導,學習系統架構,關注開發要點,並盡量使用手機系統的通用設計思想、軟體工程思想、系統工程思想來指導Android系統學習。
嵌入式Linux系統學習者:將Android作為一個集Linux核心和應用層程序於一體的系統進行學習,並可以利用Android的模擬環境運行和調試程序。
讀者在學習本書的過程中,應盡量對照本書的框圖和手頭的Android源代碼,這樣可以達到事半功倍的效果。本書在重點代碼中加上大量的注釋,幫助讀者閱讀,對於非重點的代碼,不佔用本書的篇幅,讀者可以參考開放的源代碼。可以採用順序讀和重點讀相結合的方式學習本書,順序讀關注系統框架,重點讀關注開發要點。
本書作者
本書在編寫過程中提煉和綜合Android早期開發者的經驗、中國大陸Androidin社區的開發成果,以及各位專家的經驗和技術,這是本書出版的知識源泉。本書主要由Androidin社區的兩名核心技術專家韓超和梁泉領銜規劃和編著,韓超統稿。總部設在南加州、專注於Android平台並提供其移動應用開發及解決方案的邁奔無線(mAPPn Inc.)也投入技術和人力參與了本書的工作。
參與本書編寫的還有於仕林、張宇、張超等人,趙家維、黃亮、沈楨、徐威特、楊鈺等參與了審校工作。
由於時間倉促,可能依然存在一些錯誤和問題,請讀者見諒,歡迎讀者討論和指點。