Hey
終於又來到同樣的單元
當每天打開電腦打文章變成一種習慣時的感覺...
...
我不知道 因為我還沒習慣
最近陪看醫生系列的韓劇
看著看著都想當醫生惹
好想進合大醬料
今天就來介紹APP的本體
smali code
簡單說明一下
smali是一種ASM-like的中介語言
是從Dalvik VM的操作碼轉成人類可讀的語言
先來看看其中一個檔案
首先在開頭的部分
.class 的部分表示他是在 tw/com/123/newlbs/的其中一類別
.super 的話則表示他是繼承Object
.source 是指源檔是R.java
也因為這檔案是R.id
表示這裡都記載著每個element的唯一碼
這也是為什麼在layout完時
要在java file裡指定哪個元件
讓每個物件在使用元件的時候都有自己的對象
再來就是MainActivity$MyLocationListener.smali
這個檔名很有意思
大概講一下
$在這裡的意思
MyLocationListener是在MainActivity的裡面的一個類別
可以看到這裡面有一個方式onLocationChanged
這也是MyLocationListener裡面必須實做的一個方法
另外
.method public onLocationChanged(Landroid/location/Location;)V
這裡面可以看到 Landroid/location/Location 前面有個L 這表示後面接的是一個對象Object
最後面有個V 在這裡V的位置是return value, 也就是return void type
參考一下format就大概會知道了
Function-Name (type variable1; type variable2; type variable3; ...)Return value type
.method public onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V
所以這就表示這是一個帶參數(String, Bundle)且return void的一個public function: onStatusChanged
那今天就大概熟悉一下smali code
我是來世胸胸的...
我們下次見