手機編譯工程包應用
1. android 工程 如何一鍵編譯打包成apk
打包步驟:
1、生成keystore
按照下面的命令行在C:ProgramFilesjavajdk1.6.0_10in>目錄下,輸入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。
命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1
圖-2EclipseAndroid打包工具
接下來的步驟就是不斷的next。下面僅貼出圖片,不解釋。
step2:選擇打包的項目
step3:選擇生成的EclipseAndroid.keystore文件並輸入密碼
step4:選擇aliaskey並輸入密碼
step5:最後選擇生成androidapk文件的目錄及文件名
最終生成的apk文件。
2. 手機怎麼製作軟體程序
我想製作一個手機軟體,應該怎麼做? 100分
我給大家介紹一些適合製作簡單app的軟體,讓各位在未掌握app開發語言情況下,依然能製作出屬於自己的app應用軟體。
一:Appmakr
AppMakr是一個可以讓你在幾分鍾之內創建應用程序的一種服務,無需編碼能力。使用該工具,你可以創建iPhone和Android應用。還有一些可供選擇的功能,包括將網站連接到你的應用程序、HTML5功能、推送通知和廣告支持。通過AppMaker賬戶,你可以創建無限數量的應用程序。
目前Appmakr是國外比較流行的應用生成工具,姿虧在國內也享有一定知名度。
二:AppCan
AppCan屬於移動應用開發平台,應用引擎支持Hybrid App的開發和運行。並且著重解決了基於HTML5的移動應用目前"不流暢"和"體驗差"的問題。使用AppCan應用引擎提供的Native交互能力,可以讓HTML5開發的移動應用基本接近Native App的體驗。
與Phonegap支持單一webview使用div為單位開發移動應用不同。AppCan支持多窗口機制,讓開發者可以像最傳統的網頁開發一樣,通過頁面鏈接的方式靈活的開發移動應用。基於這種機制,開發者可以開發出大型的移動應用,而不是只能開發簡易類型的移動應用。
三:appBook
appBook平台是多平台移動應用製作工具,可以廣泛用於書籍製作,個人雜志發行,宣傳手冊,支持iPad、iPhone、Andriod等平台,不支持pc平台。真正做到了一次編譯多平台發布。目前appbook平台有:iebook平台、及、appbook應用製作平台.
曾經我也適用用軟體製作APP,目的是達到了,但做出來的app比較生硬。後來我和啟匯網路(廣州一家比較專業的APP開發公司)技術總監Daniel聊起app開發,Daniel認為:要做好app開發,必須要有核心的app開發技術,有經驗的app開發團隊,才能做好滿意的app應用軟體。
真正要做好一個APP,也要掌握一定的app開發技術才是王道!
手機怎樣製作軟體程序
手機App軟體 是使用Android製作的 和 IOS 製作的兩種其中IOS製作的是應用在 蘋果的設備上!希望對你有用!
製作手機APP軟體,需要哪些人?
製作手機APP需要:軟體研發工程師(安卓或IOS),美術,項目策劃
軟體研發工程師主要負責編程實現軟體的功能需求(如登錄,注冊,購買,查詢,編輯,退出等)
美術主要負責軟體所需的素材(圖片,動畫,特效,模型等)
項目策劃主要負責整個產品的定位(所面向的用戶群體),功能需求,界面布局(軟體中按鈕圖片特效的位置,大小等參數),以及後期的產品用戶體驗的改進
手機上的軟體怎麼製作壓縮包
360手機助手類的軟體不是有備份軟體功能嗎
怎麼製作手機軟體app
隨著移動手機的普及,移動APP應用軟體也流行起來。「啟匯網路」市場部通過調查得出一組數據:20%左右的企業已經擁有或者正在開發自己的app應用軟體,60%左右的公司已經把開發app軟體列入近期公司發展項目中。可以看出,大部分公司和站長都有想法把自己的網站製作成app軟體,跟緊潮跡改神流步伐。但app開發涉及到的技術比較專業,開發語言要想熟悉掌握也並非一件易事。那麼,在技術還未過關的情況下,如何製作app應用軟體呢?
接下來,我將給大家介紹一些適合製作簡單app的軟體,讓各位在未掌握app開發語言情況下,依然能製作出屬於自己的app應用軟體。
一:Appmakr
AppMakr是一個可以讓你在幾分鍾之內創建應用程序的一種服務,無需編碼能力。使用該工具,你可以創建iPhone和Android應用。還有一些可供選擇的功能,包括將網站連接到你的應用程序、HTML5功能、推送通知和廣告支持。通過AppMaker賬戶,你可以創建無限數量的應用程序。
目前Appmakr是國外比較流行的應用生成工具,在國內也享有一定知名度。
二:AppCan
AppCan屬於移動應用開發平台,應用引擎支持Hybrid App的開發和運行。並且著重解決了基於HTML5的移動應用目前"不流殲扒暢"和"體驗差"的問題。使用AppCan應用引擎提供的Native交互能力,可以讓HTML5開發的移動應用基本接近Native App的體驗。
與Phonegap支持單一webview使用div為單位開發移動應用不同。AppCan支持多窗口機制,讓開發者可以像最傳統的網頁開發一樣,通過頁面鏈接的方式靈活的開發移動應用。基於這種機制,開發者可以開發出大型的移動應用,而不是只能開發簡易類型的移動應用。
三:appBook
appBook平台是多平台移動應用製作工具,可以廣泛用於書籍製作,個人雜志發行,宣傳手冊,支持iPad、iPhone、Andriod等平台,不支持pc平台。真正做到了一次編譯多平台發布。目前appbook平台有:iebook平台、及、appbook應用製作平台.
曾經我也適用用軟體製作APP,目的是達到了,但做出來的app比較生硬。後來我和啟匯網路(廣州一家比較專業的APP開發公司)技術總監Daniel聊起app開發,Daniel認為:要做好app開發,必須要有核心的app開發技術,有經驗的app開發團隊,才能做好滿意的app應用軟體。
真正要做好一個APP,也要掌握一定的app開發技術才是王道!
怎樣才能自己設計一款手機APP軟體
浙江天爾軟體技術有限公司,可以看頭像聯系,在十幾年的開發經驗中總結出了開發一款APP的注意事項,你可以參考下: 開發一個完整app需要掌握哪些知識 1、前期需求規劃與信息——你需要制定出一個完整的需求文檔,功能文檔,流程圖,時序圖。 2、交互設計、UI設計——設計出基本且完善的原型圖和app基礎的交互設計效果,之後再根據這些設計出完整的UI界面並學會切圖,一些需要做自適應的素材圖片需要做點9patch。 這里還需要你懂得px,pt和dp之間的換算,屏幕密度的換算和相互之間的系數,以便你的app能完美適應不同解析度設備。其中交互設計需要你懂得很多人機操作的技巧經驗,掌握Axure等交互工具的使用,UI設計需要你掌握Photoshop和Illustrator等操作。 3、使用ADT之類的開發環境進行app軟體開發,你最基本的也得掌握java語言,熟悉android環境和機制。 4、如果不是單機版的app,需要用到伺服器,那你還得掌握WebService相關知識和開發語 言,常用的有ASP.Net,PHP,JSP等。 5、熟悉並能開發資料庫。 6、某些功能需要做演算法,這還需要一定得專業知識,尤其是數學基礎。 7、熟悉API介面開發,這里包括你自行開發API的能力以及調用第三方API的經驗。 8、熟悉TCP/IP,socket等網路協議和相關知識。 9、熟練掌握App發布的流程,真機調試技巧,證書,打包,上架。 App開發其實不一定適合一個人搞,太費勁,除非是一個單機版的小應用,或者利用現成的app開發簡單的第三方應用,否則還是讓一個團隊來完成各自擅長的領域。
智能手機軟體製作需要學習哪些知識?
Android的頂層應用程序都是用Java語言寫的,底層驅動什麼的是用C/C++寫的。應用程序開發有一套完整的SDK,使用Java語言,也可以用C/C++,Android提供了一套NDK程序,讓Android可以調用C/C++的程序。
你要從語言開始學期,word那攻西是最簡單的辦公程序,跟語言不靠邊。
你先學C語言吧,C學不會別的都白搭。
怎麼製作一款游戲或軟體?能用手機製作嗎?求詳細過程與圖解!
完全可以
手機上的軟體是怎麼做出來的
一個人能做出來,但得看你的經驗了。
你首先要了解手機的系統吧,針對不同的系統開發的工具平台,開發語言,開發技巧都不相同。你得掌握至少一種手機平台的開發語言。
其次你要懂一些設計吧,除了開發以外,產品設計啊,界面設計啊,用戶體驗啊方方面面都需要考慮。
第三關於賺錢的事,做一個軟體首先考慮的是用戶使用,沒人用你的軟體就算你能賣個天價,無人買單都等於空的。軟體做得好,用戶滿意就有了賺錢的機會,否則還是省省吧。
怎麼做手機軟體 自己能做嗎
做軟體是一個團隊的事情。如果說你要開始學計算機語言。沒有基礎,也沒人交的話。學起來會很困難。而且也費很長時間。等你學會了。開發也需要時間吧?這樣時間過去之後。搞不好別人已經想到了這個點子。已經開發出來了(我是搞軟體的。也有些想法。想到點子一個月之後。別人就開發出來了。.....)
3. android ant 怎麼編譯有依賴包的工程
1、eclipse背後做了很多工作,包括庫的引用等
2、如果用ant命令的話,就需要設置很多東西,比如環境變數,庫路徑的設置等
3、先編譯一個jar包,用jar包引用,把工程引用改為jar文件引用,再編譯試試。
4. 為什麼我用show java手機版反編譯出來的工程用AIDE打開會有很多錯誤
本文詳細介紹了如何反編譯一個未被混淆過的Android APK,修改smali位元組碼後,再回編譯成APK並更新簽名,使之可正常安裝。破譯後的apk無論輸入什麼樣的用戶名和密碼都可以成功進入到第二個Activity。
有時難免要反編譯一個APK,修改其中的若干關鍵判斷點,然後再回編譯成一個全新的可用的apk,這完全是可實現的。若要完成上述工作,需要以下工具,雜家後面會把下載鏈接也附上。這些軟體截止本文發布時,經過雜家確認都是最新的版本。
1.APK-Multi-Toolv1.0.11.zip 用它來反編譯apk,得到smali類型的源碼和資源文件。一般來講,直接解壓縮一個apk也可以看到其資源文件,但部分xml是不可閱讀的,需用此工具反編譯。網上流傳較廣的是一個經過高人漢化過的版本1.0.3,第一次使用這個工具可以用這個漢化的版本,熟悉其命令。但經過雜家測試,這個漢化的版本再回編譯apk簽名時已經出問題了,簽不了,最終用的最新版才ok。
2.dex2jar-0.0.9.15.zip 用於將一個apk文件轉換成jar類型的文件,轉換之後再利用下面的jd-gui工具才能看到其java代碼。上面的apk-tool固然強大,但是反編譯出來是smali文件,即dalvik位元組碼,類似匯編語言的一種代碼,直接閱讀如天書一樣,為此我們需要使用dex2jar + jd-gui來得到其java代碼,進行閱讀找到要修改的關鍵點。
3.jd-gui-0.3.6.windows.zip 可以打開一個jar類型的文件,看到java代碼。並能將代碼保存,保存後再弄到sourceinsight里就方便看了。最好使用本文所說的最新版本,使用老版本會發現一個BActivity,如果裡面有內部類,則又多出一個BActivity$1.java,類似這種文件。新版本沒這個問題。
4.Smali2Java.1.0.0.558.zip 用於將smali文件轉成java文件,這個工具僅僅是備用。因為用上面三個工具已經能夠勝任本文的要求了。
如果第一次接觸反編譯,不了解smali語法,可以閱讀鏈接1 鏈接2
下面雜家先上一個Android APK,用來簡單模擬用戶登錄的情況,注意只能是模擬哈。因為正式的apk很少有在本地進行判斷的。此apk要求用戶輸入用戶名和密碼,如果用戶名為yanzi,密碼為123,則認為合法,自動跳轉到第二個Activity。否則提示用戶名或密碼不正確。
<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.decomdemo.activity;
import org.yanzi.decompiledemo.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity {
EditText loginName = null;
EditText loginPswd = null;
Button loginBtn = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initUI();
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(isAllowLogin()){
Intent intent = new Intent(LoginActivity.this, SecondActivity.class);
startActivity(intent);
LoginActivity.this.finish();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true;
}
private void initUI(){
loginName = (EditText)findViewById(R.id.edit_login_name);
loginPswd = (EditText)findViewById(R.id.edit_login_pswd);
loginBtn = (Button)findViewById(R.id.btn_login);
}
private boolean isAllowLogin(){
String name = loginName.getText().toString().trim();
String pswd = loginPswd.getText().toString().trim();
if(name != null && pswd != null){
if(name.equals("") || pswd.equals("")){
Toast.makeText(this, "密碼或用戶名不能為空", Toast.LENGTH_SHORT).show();
return false;
}
}
if(name.equals("yanzi") && pswd.equals("123")){
return true;
}else{
Toast.makeText(getApplicationContext(), "用戶名或密碼不符", Toast.LENGTH_SHORT).show();
}
return false;
}
}
</span>
附上出處鏈接:http://blog.csdn.net/yanzi1225627/article/details/38425453
5. 如何在eclipse中把Android工程編譯為apk安裝文件
1、生成keystore
按照下面的命令行在C:ProgramFilesJavajdk1.6.0_10in>目錄下,輸入
keytool -genkey -alias android.keystore -keyalg RSA -validity100000
-keystore android.keystore
參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。
命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件 。如圖-1
"Destination APK file "指定APK存儲的位置。單擊"Finish"按鈕,打包完成。
進入"D:My Document",會看到生成的HelloWorld.apk以及sharpandroid證書庫。
6. apk文件怎麼轉化android工程文件!
APK是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。apk文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。
apk反編譯就是通過使用apk編譯工具將apk文件中的源文件和資源反編譯出來,得到的源文件和資源文件可以進行處理後再進行編譯,以達到個性化定製,漢化apk等目的。[1]
apk反編譯工具
1、最典型的apk編譯工具的核心是apktool,但是因為操作需要調用cmd命令,所以出現了很多具有可視化界面的各種編譯工具,像easyapk,apkdb,doapk
2、dex2jar.jar,將apk中的classes.dex轉化成Jar文件,再通過jd-gui工具反編譯jar文件。
apk編譯方法
使用apkdb編譯apk文件只需要在安裝apkdb後直接右擊反編譯就可以將apk文件反編譯出來
1、使用原生apktool工具,需要將apktool的兩個文件釋放到window目錄下,在cmd中使用 apktool d apk文件名 命令來編譯apk文件,此時命令行的執行目錄與apk文件所在目錄必須一致。
2、首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄,運行 dex2jar.bat classes.dex。
7. 手機方案公司需要在mtk工程源碼編譯後將apk預裝到system/app目錄下如何操作
在 Android 中,如果要使用系統限制的許可權(比如 android.permission.WRITE_SECURE_SETTINGS),我們需要把程序安裝到 /system/app/ 下。
下面以 SecureSetting.apk 為例,演示這個操作。需要准備一台已經獲得 Root 許可權的手機。
1、通過 USB 連接手機和電腦。
2、使用 adb 控制手機。
源碼列印?
1. $ adb push SecureSetting.apk /sdcard/ // 上傳要安裝的文件,為安裝做准備。
2. $ adb shell
3. $ su // 切換到 root 用戶。如果沒有獲得 Root 許可權,這一步不會成功。
4. # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 讓分區可寫。
5. # cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 這一步可以用 cp 實現,但一般設備中沒有包含該命令。如果使用 mv 會出現錯誤:failed on '/sdcard/NetWork.apk' - Cross-device link。
6. # mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 還原分區屬性,只讀。
7. # exit
8. $ exit
$ adb push SecureSetting.apk /sdcard/ // 上傳要安裝的文件,為安裝做准備。
$ adb shell
$ su // 切換到 root 用戶。如果沒有獲得 Root 許可權,這一步不會成功。
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 讓分區可寫。
# cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 這一步可以用 cp 實現,但一般設備中沒有包含該命令。如果使用 mv 會出現錯誤:failed on '/sdcard/NetWork.apk' - Cross-device link。
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 還原分區屬性,只讀。
# exit
$ exit
8. 怎麼樣將自己開發的Android應用程序編譯到系統Image中
1. 搭建編譯環境
編譯環境: Ubuntu 10.10
Android版本:Android 2.2
編譯過程中可能需要在Ubuntu上安裝必要的一些軟體,我安裝過的包含如下軟體,不同的系統可能會有差別:
jdk6(Android官方建議裝jdk5,但是我在編譯時會遇到Java override問題,改用6沒有任何問題), bison, lib64z1-dev, libasound2-dev, flex, gperf, libncurses5-dev
2. 應用程序存放目錄
SimpleJNI是採用Android NDK和Java編寫的程序,包含apk和so庫文件,它的源代碼在source tree的development/samples/目錄下。
實際上package在編譯時所放的目錄並沒有明確限定,編譯後apk和so存放的位置是根據目錄下Android.mk所指定的編譯類型所決定的,例如:
SimpleJNI根目錄下的Android.mk中有一行include $(BUILD_PACKAGE),表示將該目錄下的模塊編譯成package,即apk文件,默認存放的位置為/system/app。
SimpleJNI/jni目錄下的Android.mk中有一行為include $(BUILD_SHARED_LIBRARY),表示將該目錄下的native.cpp編譯為共享庫文件,即so文件,默認存放的位置為/system/lib
因此,如果我們想要將自己編寫的程序編譯至image中,只需要將Eclipse下完成的整個工程到source tree下的某個目錄即可,我一般習慣放到packages/apps下。
3. 添加Android.mk
完成了上一步,可以知道,Android.mk在編譯中起著至關重要的作用,這其實就是Android編譯環境中的make file。為了完成我們的工作,需要在源代碼中添加Android.mk。添加自己的Android.mk可以仿照SimpleJNI中的Android.mk,稍微修改即可。我們首先看看SimpleJNI目錄下的兩個Android.mk的內容:
根目錄下的Android.mk
TOP_LOCAL_PATH:= $(call my-dir)
# Build activity
LOCAL_PATH:= $(TOP_LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := samples
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := SimpleJNI
LOCAL_JNI_SHARED_LIBRARIES := libsimplejni
LOCAL_PROGUARD_ENABLED := disabled
include $(BUILD_PACKAGE)
# ============================================================
# Also build all of the sub-targets under this one: the shared library.
include $(call all-makefiles-under,$(LOCAL_PATH))
根目錄下的Android.mk決定了整個工程編譯的配置,其中,
LOCAL_PATH 定義了當前的目錄
LOCAL_MUDULE_TAGS 定義了當前模塊的類型,編譯器在編譯時會根據類型的不同有些差別,有些tags的mole甚至不會被編譯至系統中。LOCAL_MUDULE_TAGS主要有如下幾種:user debug eng tests optional samples shell_ash shell_mksh。optional表示在所有版本的編譯條件下都被編譯至image中,剩下的表示在該版本中才會被編譯只image中,如user表示在user版本下才會被編譯至image中。
對於包含LOCAL_PACKAGE_NAME的mk文件,該項默認為optinal,具體可以參看build/core/package.mk。SimpleJNI中定義為samples的具體作用我也不太清楚,為了保險起見,我自己的apk一般定義為optional。
LOCAL_SRC_FILES 定義了編譯apk所需要的java代碼的目錄
LOCAL_PACKAGE_NAME 這里需要改成自己的package的名字
LOCAL_JNI_SHARED_LIBRARIES 定義了要包含的so庫文件的名字,如果你的程序沒有採用JNI,這行不需要。
LOCAL_PROGUARD_ENABLED 定義了Java開發中的ProGuard壓縮方法,主要用來分析壓縮程序的,在我自己的應用中我沒有加這行。
include $(BUILD_PACKAGE) 這行是build的關鍵,表示當前java代碼build成apk
include $(call all-makefiles-under,$(LOCAL_PATH)) 表示需要build該目錄下的子目錄的文件,這樣編譯系統就會在當前目錄下的子目錄尋找Android.mk來編譯so等其它程序。
根據上述所寫,創建我自己的Android.mk如下:
TOP_LOCAL_PATH:= $(call my-dir)
# Build activity
LOCAL_PATH:= $(TOP_LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := TestJniApp
LOCAL_JNI_SHARED_LIBRARIES := libtestjniapp
include $(BUILD_PACKAGE)
# ============================================================
# Also build all of the sub-targets under this one: the shared library.
include $(call all-makefiles-under,$(LOCAL_PATH))
看起來很簡單吧,基本不需要改動即可。
Jni目錄下的Android.mk
由於我們的TestJniApp是用JNI完成的,包含C源代碼,因此也需要一個jni目錄下的Android.mk。同樣首先看看SimpleJNI中jni目錄下的Android.mk的內容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := samples
# This is the target being built.
LOCAL_MODULE:= libsimplejni
# All of the source files that we will compile.
LOCAL_SRC_FILES:= /
native.cpp
# All of the shared libraries we link against.
LOCAL_SHARED_LIBRARIES := /
libutils
# No static libraries.
LOCAL_STATIC_LIBRARIES :=
# Also need the JNI headers.
LOCAL_C_INCLUDES += /
$(JNI_H_INCLUDE)
# No special compiler flags.
LOCAL_CFLAGS +=
# Don't prelink this library. For more efficient code, you may want
# to add this library to the prelink map and set this to true. However,
# it's difficult to do this for applications that are not supplied as
# part of a system image.
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
LOCAL_MODULE 當前模塊的名字,即編譯後的so文件的名字
LOCAL_SRC_FILES 所要編譯的文件
LOCAL_SHARED_LIBRARIES, LOCAL_STATIC_LIBRARIES 該模塊要鏈接的動態庫和靜態庫。
LOCAL_C_INCLUDES 要包含的頭文件
LOCAL_CFLAGS C語言編譯選項
LOCAL_PRELINK_MODULE 定義是否使用prelink工具,它用事先鏈接代替運行時鏈接的方法來加速共享庫的載入,不僅可以加快起動速度,還可以減少部分內存開銷。
經過修改後,我自己的TestJniApp中jni目錄下的Android.mk如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libtestjniapp
LOCAL_SRC_FILES := com_test_app_Jni.c
LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
這里有一點需要注意,如果要將so文件編譯入image,必須要修改LOCAL_MODULE_TAGS,將原有的值samples修改為user,或者可以直接刪掉 。刪掉是因為對於包含LOCAL_MODULE的mk文件,如果沒有指定LOCAL_MODULE_TAGS,該項默認為user,而只有定義為user的情況下,才會將so文件編譯入image,具體定義可以參看build/core/base_rule.mk。
4. 修改/bulid/target/proct/generic.mk 把工程編譯到系統中
至此,還有最後一部工作。為了將工程編譯進入image,還需要在/bulid/target/proct/generic.mk文件中將package name添加進去
PRODUCT_PACKAGES := /
AccountAndSyncSettings /
CarHome /
DeskClock /
……
SyncProvider /
TestJniApp
完成上面這些步驟後,在source tree根目錄下編譯image就可以了。
9. 透過ant腳本,編譯打包android工程怎麼解決
通過ant腳本,編譯打包android工程方法步驟如下:
1.Android程序編譯、打包、簽名、發布的三種方式:
方式一:命令行手動編譯打包
方式二:使用ant自動編譯打包
方式三:使用eclipse+ADT編譯打包
2.Android編譯、打包的步驟:
2.1第一步 生成R.java類文件:
Eclipse中會自動生成頃段R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java。
2.2第二步 將.aidl文件生成.java類文件:
Eclipse中自動生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件。
2.3第三步 編譯.java類文件生成class文件:
Eclipse中自動生成,ant和命令行使用jdk的javac編譯java類文件生成class文件。
2.4第四步 將class文件打包生成classes.dex文件:
Eclipse中自動宴猛生成,ant和命令行使用android SDK提供的dx.bat命令行腳本生成classes.dex文件。
2.5第五步 打包資源文件(包括res、assets、androidmanifest.xml等):
Eclipse中自動生成,ant和命令行使用Android SDK提供的aapt.exe生成資源包文件。
2.6第六步 生成未簽名的apk安裝文件:
Eclipse中自動生成debug簽名文件存放在bin目錄中,ant和命令行使用android SDK提供的apkbuilder.bat命令腳本生成未簽名的apk安裝文件。
2.7第七步 對未簽名的apk進行簽名生成簽名後的android文件:
Eclipse中使用Android Tools進行簽名,ant和命令行使用jdk的jarsigner對未簽名的包進行apk簽名。
這個ant腳本只能編譯打包一個晌乎橋單獨的android工程或依賴一個library 的android工程
首先配置ant的環境變數,這個我就不多少了,自己查。