多個android編譯
1. android sdk多個版本 編譯用哪個
永遠只用最新的SDK版本,這是Google官方強烈建議的。開發者的app能運行的Android版本不是由SDK決定的,是由每一個項目的minSDK決定的。SDK都是向下兼容的。SDK在不斷改進中,新的SDK會提供更強大開發工具,而且用4.0的SDK編譯的2.1的apk的執行效率會比用2.1的SDK編譯的更高。
至於每個app應該用什麼minSDK ,應該根據應用具體的API來,如果app沒有用到1.6以上SDK新提供的API,那麼用1.6會在提供相同體驗下反而會比2.1兼容更多機型.
附谷歌原版建議:
In order to provide the best user experience on the latest devices, we recommend that you use the latest platform version as your build target. You'll still be able to run your app on older versions, but you must build against the latest version in order to use new features when running on devices with the latest version of Android.To get started, download the latest Android version, plus the lowest version you plan to support (we recommend Android 2.2 for your lowest version).
2. 如何在一個android工程中調用另一個android工程的代碼和資源啊
現在已經有了一個Android工程A。我們想擴展A的功能,但是不想在A的基礎上做開發,於是新建了另外一個Android工程B,想在B中引用A。
1. 把工程A做成純Jar包,這樣其他的工程就可以直接引用了。
但是,如果在工程A中用了R.java中的引用,則無法打成jar包了。原因是R.java是自動生成的,是動態的,每次編譯都是不相同的。如果一定要做成jar包,就不能使用自動生成的R文件,用到資源時候就要寫代碼去獲取。
有時會報錯:Conversion to Dalvik format failed with error 1
可能是多層包文件重復導入,沖突。。。
這時可以試試方法2
2.將工程A做成android library project。
設置工程A,右鍵->Properties->Android,將Is library項選中,然後Apply。設置工程B,右鍵->Properties->Android,在Library中,點擊Add按鈕,將A工程加入,然後Apply。此時在B中就引入了A中的資源和代碼,這些資源和代碼都可以直接調用。需要注意的是,因為A已經不再是一個完整的Android應用,而是一個類庫工程,所以有一些內容還需要在B中配置一下。比如A中有lib庫引用,則B中也要加入該lib庫;比如A中的AndroidManifest.xml文件的內容,在B的AndroidManifest.xml文件中也要相應加上。。。
如果不需要引用A工程的資源文件,同樣只需得到jar文件,
設置工程A,右鍵->Properties->Android,將Is library項選中,然後Apply。在A工程的bin目錄下能得到一個jar文件,可以到B工程中的libs目錄下直接引用。
如果能用jar當然最好,但是jar文件不能把res目錄下的資源打包進去,所以才出現lib工程。
創建和使用Android library工程
摘要: 創建library供多個工程共享代碼、資源是非常常見的需求,網上這種資料非常少,基本上都是講創建java工程,然後export,這種方式缺點非常多,大家可以自己google一下。本文著重介紹如何創建Android library,並且在 ...
創建library供多個工程共享代碼、資源是非常常見的需求,網上這種資料非常少,基本上都是講創建java工程,然後export,這種方式缺點非常多,大家可以自己google一下。
本文著重介紹如何創建Android library,並且在工程中使用此library提供的資源,具體步驟如下:
1. 創建一個Android工程,命名為MyLib
2. 進入工程設置選中Is Library
3. 創建另一個Android工程,命名為MyProj
4. 進入工程設置,添加MyLib
5. 在MyProj的AndroidManifest.xml中加入對library中activity的引用
<activity android:name="net.devdiv.mylib.MyLib" />
6. 由於編譯後library中的資源和引用它的project資源是合並在一起的,為了避免重名問題,需要對library中資源進行重命名
1). 把main.xml改為mylib.xml,同時修改MyLib.java代碼setContentView(R.layout.mylib);
2). strings.xml修改為
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mylibhello">String fetched from lib!</string>
<string name="mylib_app_name">MyLib</string>
</resources>
7. 在MyProj中引用MyLib的資源
package net.devdiv.myproj;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import net.devdiv.mylib.*;
import android.content.Intent;
public class MyProj extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView)findViewById(R.id.myprojtext);
tv.setText(R.string.mylibhello);
Intent it = new Intent(this, MyLib.class);
startActivity(it);
}
}
3. 簡述android源代碼的編譯過程
編譯Android源培談代碼是一個相對復雜的過程,涉及多個步驟和工具。下面我將首先簡要概括編譯過程,然後詳細解釋每個步驟。
簡要
Android源代碼的編譯過程主要包括獲取源代碼、設置編譯環境、選擇編譯目標、開始編譯以及處理編譯結果等步驟。侍沒
1. 獲取源代碼:編譯Android源代碼的第一步是從官方渠道獲取源代碼。通常,這可以通過使用Git工具從Android Open Source Project(AOSP)的官方倉庫克隆代碼來完成。命令示例:`git clone https://android.googlesource.com/platform/manifest`。
2. 設置編譯環境:在編譯之前,需要配置合適的編譯環境。這通常涉及安裝特定的操作系統(如Ubuntu的某些版本),安裝必要的依賴項(如Java開發工具包和Android Debug Bridge),以及配置特定的環境變數等。
3. 選擇編譯目標:Android支持多種設備和配置,因此編譯時需要指定目標。這可以通過選擇特定的設備配置文件(如針對Pixel手機的`aosp_arm64-eng`)或使用配談碰通用配置來完成。選擇目標後,編譯系統將知道需要構建哪些組件和變種。
4. 開始編譯:設置好環境並選擇了編譯目標後,就可以開始編譯過程了。在源代碼的根目錄下,可以使用命令`make -jN`來啟動編譯,其中`N`通常設置為系統核心數的1~2倍,以並行處理編譯任務,加快編譯速度。編譯過程中,系統將根據Makefile文件和其他構建腳本,自動下載所需的預構建二進制文件,並編譯源代碼。
5. 處理編譯結果:編譯完成後,將在輸出目錄(通常是`out/`目錄)中生成編譯結果。這包括可用於模擬器的系統鏡像、可用於實際設備的OTA包或完整的系統鏡像等。根據需要,可以進一步處理這些輸出文件,如打包、簽名等。
在整個編譯過程中,還可能遇到各種依賴問題和編譯錯誤,需要根據錯誤信息進行調試和解決。由於Android源代碼龐大且復雜,完整的編譯可能需要數小時甚至更長時間,因此耐心和合適的硬體配置也是成功編譯的重要因素。
4. 如何解決手機能安裝多個易安卓編譯出來的程序
1。方舟編譯器
首先,讓我們簡單地談談方舟編譯器的功能。
編譯器:應用程序製造商編寫的應用程序需要將源代碼轉換為虛擬機識別的機器代碼或位元組碼。此轉換過程需要使用編譯器,因此手機安裝由編譯器編譯的apk文件,而手機不需要安裝編譯器。事實上,方舟編譯器的機制類似於厄優優化機制。也就說,它相當於第三方加工廠。如果所有的軟體廠商都能從方舟編譯器中走出來,事實上,他們會取得很好的優化效果。
方舟編譯器:傳統的Android編譯器將Java編寫的代碼轉換成Java虛擬機所識別的位元組碼,位元組碼運行在虛擬機上。方舟編譯器將Java編寫的代碼直接打包成可以在機器上運行的01機器代碼,而不需要Java虛擬機的"中間層",這就提高了執行效率,根據測試系統的運行流暢性提高了24%。第三方APP提升了60%.
2。方舟編譯器"生態"
編譯器可以看作是操作系統的一部分。只有當應用程序製造商使用它們時,方舟編譯器才能創建一個"生態"。否則,方舟編譯器可以說是不必要的。消息稱,網路(143.060,-0.13%)、騰訊(581.000,+5.44%)、搜狐和阿里巴巴都在進行相關調整。相信會有越來越多的國內廠商參與到方舟編譯器的"生態"建設中來。根據計劃,華為將在今年秋天實現方舟編譯器的"開源",但谷歌(1752.710,+0.71%)已經終止了與華為的業務聯系。華為手機無法使用谷歌的GSM服務,也無法訪問Android更新服務。根據目前的信息,方舟編譯器很可能是鴻蒙操作系統生態系統的一部分。
總之,美國的"禁售令"對華為的影響很大,但應影響方舟編譯器的"開源計劃"。目前,方舟編譯器已經與40多個國內的應用程序進行了合作,今年下半年,相信會有更多的廠商參與到方舟編譯器的"生態"中來。
5. android系統 主要有哪幾部分
android系統分為四部分,從高到低分別是:
1、Android應用層
2、Android應用框架層
3、Android系統運行層
4、Linux內核層
Android系統構架主要應用於ARM平台,但不僅限於ARM,通過編譯控制,在X86、MAC等體系結構的機器上同樣可以運行。
(5)多個android編譯擴展閱讀:
Android運行庫
Android包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。
每一個Android都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik虛擬機執行(.dex)的Dalvik可執行文件,該格式文件針對小內存使用做了優化。
同時虛擬機是基於寄存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中的「dx」工具轉化成.dex格式由虛擬機執行。