1、編譯環境以及指令行
之前有做一個關于源碼層編譯的項目,現在有時間了來總結一下,同時友善新手參考
我們做源碼編譯使用的是Putty沒有直接安裝linux系統,隻需要伺服器給我建立一個賬戶就行
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcFTQE90dRRUTrh2RaZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TO3MTMxMDM3ETMwkDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
第一次打開putty,然後用伺服器給你建立的帳号密碼,登入進去,以後會有session記錄你的帳号密碼不需要每次輸入帳号密碼;
登入後的界面如下
然後就是cd 指令進入伺服器網盤了比如我們的網盤如圖:
然後執行初始化的一些指令
先輸入 source build/envsetup.sh
然後 lunch //73是我們的啟動模式,可以改變的
然後就是進入我們要編輯的源碼目錄如圖:
進入項目目錄以後,就是編譯指令
編譯完成之後我們找到編譯好的apk位置,如圖
這個apk就可以直接安裝到手機,指令行安裝到手機之前需要電腦連結手機,安裝到手機也可以通過指令行來進行,指令如下
//覆寫安裝APK
adb push Z:\ot8234G_work\out/target/product/p301/system/app/WalkliveLauncher/WalkliveLauncher.apk
//system目錄之後的就是系統目錄了,也就是framework層
或者使用install指令安裝
adb install -r Z:\ot8234G_work\out/target/product/p301/system/app/WalkliveLauncher/WalkliveLauncher.apk && adb shell am start -n com.onething.flowpusher/.ui.MainActivity
然後總結一下幾個比較常用的指令
adb devices
安裝軟體 --将指定的apk檔案安裝到裝置上
adb install <apk檔案路徑>
解除安裝軟體
adb uninstall <軟體名>
adb uninstall -k <軟體名> 如果加 -k 參數,為解除安裝軟體但是保留配置和緩存檔案.
登入裝置shell
adb shell --這個指令将登入裝置的shell.
adb shell <command指令> 後面加<command指令>将是直接運作裝置指令, 相當于執行遠端指令
從電腦上發送檔案到裝置 --用push指令可以把本機電腦上的檔案或者檔案夾複制到裝置(手機)
adb push <本地路徑> <遠端路徑>
adb remount ## remount '/system'分區 as read-write
從裝置上下載下傳檔案到電腦 --用pull指令可以把裝置(手機)上的檔案或者檔案夾複制到本機電腦
adb pull <遠端路徑> <本地路徑>
顯示幫助資訊(包括各種指令用法與含義) --
adb help 顯示幫助指令
adb connect +ip位址 連結裝置
2、然後說一下代碼編輯器
一般可以通過eclipse直接導入編輯
使用Androidstudio也是可以的,我們需要建立一個project,然後把伺服器源碼拉下來,我這裡有個比較簡便的方法,隻需要修改兩個檔案
檔案修改好以後,還需要點選AS上面的重新整理按鈕即可拉取伺服器源碼;
如圖
第一個是app目錄下面的build.gradle,請參考如下代碼修改
apply plugin: 'com.android.application'
android {
compileSdkVersion Integer.parseInt(COMPILE_SDK_VERSION)
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
applicationId PACKAGE_NAME
minSdkVersion Integer.parseInt(MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(TARGET_SDK_VERSION)
versionCode Integer.parseInt(VERSION_CODE)
versionName VERSION_NAME
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
manifest.srcFile MANIFEST_SRC_FILE
java.srcDirs = [JAVA_SRC_DIRS]
resources.srcDirs = [RESOURCES_SRC_DIRS]
aidl.srcDirs = [AIDL_SRC_DIRS]
renderscript.srcDirs = [RENDERSCRIPT_SRC_DIRS]
res.srcDirs = [RES_SRC_DIRS]
assets.srcDirs = [ASSETS_SRC_DIRS]
}
}
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.processManifest.doLast {
def manifestFile = output.processManifest.manifestOutputFile
def updatedContent = manifestFile.getText('UTF-8').replaceAll("android:sharedUserId=\"android.uid.system\"", "")
manifestFile.write(updatedContent, 'UTF-8')
}
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: LIBS)
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile "com.android.support:support-v4:${SUPPORT_LIBRARY_VERSION}"
compile "com.android.support:appcompat-v7:${SUPPORT_LIBRARY_VERSION}"
}
另一個是gradle.properties檔案,參考如下代碼修改
VERSION_CODE=
VERSION_NAME=
PACKAGE_NAME=com.onething.FlowPusherTest.test//包名
MIN_SDK_VERSION= //版本可自定定義
COMPILE_SDK_VERSION=
TARGET_SDK_VERSION=
BUILD_TOOLS_VERSION=
SUPPORT_LIBRARY_VERSION=
MANIFEST_SRC_FILE=Z:/ot8234G_work/packages/apps/FlowPusherTest/AndroidManifest.xml//這個是伺服器上面的配置檔案
JAVA_SRC_DIRS=Z:/ot8234G_work/packages/apps/FlowPusherTest/src//伺服器上面代碼目錄
RESOURCES_SRC_DIRS=Z:/ot8234G_work/packages/apps/FlowPusherTest/src//伺服器上面代碼目錄
AIDL_SRC_DIRS=Z:/ot8234G_work/packages/apps/FlowPusherTest/src//伺服器上面代碼目錄
RENDERSCRIPT_SRC_DIRS=amlogic_6/packages/apps/FlowPusherTest/src//伺服器上面代碼目錄
RES_SRC_DIRS=Z:/ot8234G_work/packages/apps/FlowPusherTest/res//伺服器上面代碼目錄的資源檔案
ASSETS_SRC_DIRS=Z:/ot8234G_work/packages/apps/FlowPusherTest/assets//伺服器上面代碼目錄的資源檔案
LIBS=Z:/ot8234G_work/packages/apps/FlowPusherTest/libs//伺服器上面代碼目錄的lib
//如果看不懂的,就用eclipse導入吧
然後代碼修改編輯過程中需要注意的是,編輯器裡面如果要添加一下compile,需要下載下傳jar包然後添加到伺服器,并且在mk檔案裡面增加依賴,如圖
jar包添加到圖示的libs目錄裡面,mk檔案裡面參考圖檔代碼修改,否則在linux系統下mm會報錯
好像說完整個流程了~~就這樣吧