LearnHouse

[轉]Android.mk的用法和基礎

來源:https://itw01.com/FGD5EYV.html

一個Android.mk file用來向編譯系統描述你的原始碼。具體來說:該檔案是GNU Makefile的一小部分,會被編譯系統解析一次或多次。你可以在每一個Android.mk file中定義一個或多個模組,你也可以在幾個模組中使用同一個原始碼檔案。每個模組屬下列型別之一: 1)APK程式,一般的Android程式,編譯打包生成apk檔案 2)JAVA庫,java類庫,編譯打包生成jar檔案 3) CC++應用程式,可執行的CC++應用程式 4)CC++靜態庫,編譯生成CC++靜態庫,並打包成.a檔案 5)CC++共享庫, 編譯生成共享庫(動態連結庫),並打包成.so, 有且只有共享庫才能被安裝/複製到您的應用軟體(APK)包中。
Read more...

posted by admin in 程式&軟體 and have No Comments

理解 Android Build 系统

覺得很值得越讀的好文章,備份一下。
來源:https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/
2018/3/5: 新增部分敘述不完整或錯誤敘述
2018/3/21: 新增快速build指定的image

前言

Android Build 系統是 Android 源碼的一部分。關於如何獲取 Android 源碼,請參照 Android Source 官方網站:

http://source.android.com/source/downloading.html

Android Build 系統用來編譯 Android 系統,Android SDK 以及相關文檔。該系統主要由 Make 文件,Shell 腳本以及 Python 腳本組成,其中最主要的是 Make 文件。

眾所周知,Android 是一個開源的操作系統。Android 的源碼中包含了大量的開源項目以及許多的模塊。不同產商的不同設備對於 Android 系統的定製都是不一樣的。

如何將這些項目和模塊的編譯統一管理起來,如何能夠在不同的操作系統上進行編譯,如何在編譯時能夠支持面向不同的硬件設備,不同的編譯類型,且還要提供面向各個產商的定製擴展,是非常有難度的。 Read more...

posted by admin in 程式&軟體 and have No Comments

[轉]Parsing a C/C++ struct in Java

這是一篇備份的文章,預防之後消失,來源是
http://jnkjava.blogspot.tw/2013/06/parsing-cc-struct-in-java.html

Assume you are a "lucky" guy that your Java application interfaces with a C/C++ application (e.g. a kind of server) which sends you some kind of TCP/UDP network messages you need to parse. An example such C/C++ structure is shown below:

Read more...

posted by admin in 程式&軟體 and have No Comments

[Android]常用ADB Shell

列出package name

pm list packages

列出apk位置

pm list packages -f

啟動app

am start -n <package name>/<main activity>

ex. am start -n com.package.name/.NameActivity

關閉app

am force-stop <package name>

從apk查package name & activity

aapt dump xmltree Sample.apk AndroidManifest.xml

Read more...

posted by admin in 程式&軟體 and have No Comments

控制硬體

資料來源:http://silverfoxkkk.pixnet.net/blog/post/43026733-lddp%3A%E4%B8%83%E3%80%81%E6%8E%A7%E5%88%B6%E7%A1%AC%E9%AB%94

七、控制硬體
驅動程式最主要的任務 - 控制硬體。

7-1、控制硬體
驅動程式的工作,就是幫助 kernel 控制硬體,kernel 將不認識的硬體交給驅動程式控制,而驅動程式再與 kernel 溝通後,即可讓 kernel 認識硬體,如此, user process 即可透過系統呼叫介面來操作硬體。

各種硬體都有獨特的控制方式,但大多數硬體都可透過驅動程式讀寫「暫存器」來操控。
暫存器是硬體(裝置)內部的記憶空間,但屬於斷電後內容就會消失的揮發性記憶體。

驅動程式這類軟體去讀寫裝置的暫存器,也就是 CPU 去讀寫裝置,因為軟體是在 CPU 上面運行的。
具體的讀寫方式隨著裝置而有不同,一般來說可歸為「I/O mapped I/O」與「Memory mapped I/O」這兩類。

Read more...

posted by admin in 電腦&硬體 and have No Comments

認識UART、I2C、SPI三介面特性

資料來源:https://makerpro.cc/2016/07/learning-interfaces-about-uart-i2c-spi/

對專業電子工程人員而言,UART、I2C、SPI等介面及介面的差別,是可以講到非常細節的,包含邏輯信號的準位、傳輸協定中的封包格式等。

然而對不是電子工程背景的創客、自造者(Maker)而言,這些介面就比較陌生了,然而這些介面又不得不去面對,因為Arduino、Raspberry Pi開發板就有這些介面。

以Arduino而言,最原初的Arduino就有UART,而演化不久後也加添了I2C,現在無論Arduino家族開發板如何演化,多會具備UART與I2C。

而RPi方面則是從2012年最原初的RPi開始,就同時具備這三種介面,事實上Arduino開發板所用的微控制器晶片,其本身也是具備SPI介面功能的,只是Arduino將此功能掩蓋、關閉而已。 Read more...

posted by admin in 電腦&硬體 and have No Comments