導航:首頁 > 操作系統 > android項目實踐

android項目實踐

發布時間:2022-10-09 08:59:25

『壹』 android多渠道快速打包實踐

參考資料:
美團Android自動化之旅—生成渠道包
Android批量打包提速
AndroidMultiChannelBuildTool

背景
隨著發版需要,每次發版所需渠道包越來越多(現在差不多有一百個左右了),正常gradle打包由於耗時效率過低已無法滿足需求,開始了android多渠道快速打包實踐。

方法
下面主要介紹兩種快速打包的方式:
1、類似美團的方式,在META-INF中寫入渠道名的空文件,用於讀取空文件。 美團Android自動化之旅—生成渠道包
2、在apk末尾動態寫入渠道信息。 一種動態為apk寫入信息的方案
其實這兩種方式都是同一個原理,替換以前從manifest中讀取渠道號的方式,而使用新的獲取方式(渠道號如何寫入就如何讀取)。
所以這首先需要客戶端(重要!):
1、統一應用中獲取渠道的方式並替換之前的(最好兼容)。
2、注意第三方SDK渠道號的傳入,比如友盟sdk,否則第三方會使用默認從manifest中讀取的方式。

下面介紹一種已經測試過的方法(git上開源項目 AndroidMultiChannelBuildTool )
1、安裝環境由於腳本環境是使用python語言,所以需要我們 安裝環境 。
2、導入項目導入開源項目 AndroidMultiChannelBuildTool ),並把想要批量打包的apk文件拷貝到PythonTool目錄下(與py同級),運行py腳本即可打包完成。

以上基本實現快速打包,經過測試一分鍾百十個無壓力。另外需要注意這種方式只適用於打包需求一致渠道號不同,不適用特殊定製渠道。

備註:9月21日補充快速打包java版本,詳見 AndroidMultiChannelBuildTool-Java-master

『貳』 如何創建第一個android程序

一、開發環境安裝:1.下載AndroidSDK.2.如果使用Eclipse,請安裝ADT插件。3.下載最新的SDK工具和平台。二、創建Android項目一個android項目包含了程序中用到的所有源代碼文件.使用AndroidSDK工具可以輕松的創建一個包含默認目錄和文件的項目。本節介紹如何使用eclipse或從命令行創建一個項目。CreateaProjectwithEclipse點擊工具中的New.在彈出的窗口中,打開Android目錄,選擇【AndroidApplicationProject】,點擊【next】.Figure1..3.在彈出的窗口,如圖【Figure1】中,填入下列信息:ApplicationName:應用程序名.填入"MyFirstApp."ProjectName:項目目錄名和顯示在Eclipse中的項目文件名。PackageName:程序包的命名空間,與java或c#類似。你的包名應該定義一個唯一的名字,保證與在androi系統中安裝的所有其他包名稱不一樣。因此,強烈建議以組織或公司的域名或發布者名字開頭。在這個項目中,我們使用"com.example.myfirstapp.",但是,你不能發布以"com.example」為命名空間的應用到GooglePlay上。MinimumRequiredSDK:程序支持的android系統的最小版本,如果你想要支持的android設備,需要將這個版本號設置得相對低一點。有過有些功能在低版本上不支持,你可以只在高版本上啟動該功能。在此我們使用默認設置。TargetSDK:當前版本,也是最高版本,當有更高的版本出來時,你應該重新在新的版本上測試你的程序,並修改此參數。CompileWith:你編譯程序時使用的版本。建議使用最新的版本,可通過SDKMANAGER下載。新版本中有新的一些特性,並會根據用戶的使用體驗做一些改進。Theme:AndroidUI樣式。可以按默認設置。點擊Next.在下一個屏幕上使用默認設置,繼續點擊next.下一個屏幕可以設置程序圖標.你可以通過多種方式自定義圖標,系統會自動為你生成各種屏幕尺寸下的圖標。在你發布程序前,請確保你的圖標滿足Iconography設計指南中的說明定義。繼續點擊Next.現在可以選擇一個activity模版.當前項目,我們選擇BlankActivity,然後點擊Next.4.剩下的都按默認設置,點擊Finish.這樣,這個項目就創建完畢了從命令行工具創建項目如果你沒有使用Eclipse,你可以從命令行通過SDK工具創建項目。切換到AndroidSDK目錄,tools/path.執行:androidlisttargets該命令顯示可用的android平台。如果沒有顯示任何列表,請先通過AndroidSDKManager工具進行安裝.參見AddingPlatformsandPackages.執行:androidcreateproject--target--nameMyFirstApp\--path/MyFirstApp--activityMainActivity\--packagecom.example.myfirstapp將修改為上一步驟中顯示的id;將修改為你要保存項目的文件夾。』rereadytobeginbuildingtheapp.Continuetothenextlesson.小貼士:將platform-tools/同tools/目錄一樣加到你的環境變數。這樣,這個項目就創建完畢了.三、運行你的程序你要如何運行你的程序取決於兩件事:是否有真實的android設備;是否使用eclipse.在運行你的程序之前,你需要注意項目中的一些文件夾和文件:AndroidManifest.xmlmanifest文件描述應用程序的一些基礎特性並定義每一個組件。你可以查看項目中的manifest文件,與之前談到的manifest文件的說明對比,即可知道對應的一些元素的設置:src/存放源代碼的目錄.默認情況下,包含一個啟動時用到的Activity類。res/含有多個子文件,用於程序資源的存放。示例目錄如下:drawable-hdpi/包含一些可用於高解析度屏幕的繪圖實體,如圖片。其他類似的目錄包含對應的解析度屏幕下的圖片。layout/程序UI文件。values/包含用於定義諸如字元串、顏色等的xml文件。在真實設備上運行如果你有android系統設備,可以直接在上面安裝你的程序並運行:首先你的設備需要安裝usb驅動。如果你是在window上開發,你可以安裝合適的usb驅動。具體驅動安裝信息可以參考OEMUSBDrivers在設備上啟用USB調試大部分Android3.2或更早的機器,在【設置】-【應用程序】-【開發】中設置。Android4.0和之後的系統,應該是在【設置】-【開發選項】中。Note:OnAndroid4.2andnewer,.Tomakeitavailable,gotoSettings>..運行步驟:打開項目文件,點擊【run】。在彈出的窗口中選擇【AndroidApplication】,然後點擊【OK】Eclipse會自動將程序安裝到你的設備上並運行他。在模擬器上運行在【run】-【runconfiguration】中的【Target】頁面添加和設置模擬器,然後即可運行

『叄』 Android創建資料庫需要做哪些事情

創建一個類繼承資料庫幫助類,在其中寫資料庫創建,更新方法

『肆』 關於一個大學生的android項目

建議,對本地播放器進行優化,以適應網路數據的不連續性。可以參考一些開源的網路播放器的相關方法。等網路部分搞定的話,就可以用了。

『伍』 Android開發項目過程是怎樣

第一步,先打開eclipse。打開後的界面如如圖所示,學過java的人肯定都熟悉這個編程環境,沒學過java的請先去學習java,因為android使用的是java的語法。
點擊左上角的file>new>android application project , 以此開始新建一個android項目。
點擊新建後悔出現如下所示的窗口。第一個紅框是讓你寫你應用的名字,就是軟體的名字;第二個紅框是寫這個項目的名字;第三個紅框是寫java代碼包的名字。第四個大的紅框是讓你選擇你要新建的android項目的一些信息,開發的sdk版本和面向的android版本和使用的主題。完成後,點擊NEXT。
這個窗口是在詢問你是不是創建一個自定義圖標的軟體,是否要創建activity等。完成後,點擊NEXT
這個窗口允許你更換你軟體的圖標。和其它的一些信息。完成後,點擊NEXT
這個窗口讓你選擇一種你軟體activity要使用的樣式。完成後,點擊NEXT
這個窗口讓你輸入你想要的activity的名字和你想要的layout的名字。完成後,點擊NEXT
好了一切設置好惦記finish後悔出現如下所示的窗口,最左側是你項目的分層結構等信息,左上角大部分顯示的是軟體當前默認的layout和操作layout的工具欄等。到此為止,你已經成功的創建了一個android項目。

『陸』 Android開發主要學哪些

1、Java學習(這是基礎)
2、Android環境搭建(JDK + Android Studio)
3、Android布局、控制項、組件等基礎知識的學習。(少不了新建一個HelloWorld項目)
4、網路、線程、數據的處理(進階)
5、一個很小的實際項目的實踐,加深記憶,也初步了解一個Android項目,在實踐過程中了解自己還差什麼。
6、學會使用別人造的輪子,比如Github就是個很神奇的地方,當然你要有基礎才能會用別人的東西,也能在出現錯誤時修改錯誤。
PS:JAVA基礎必須學扎實,忠告。剛開始學,可能搭建一個空的項目都會出現問題,會很焦灼,如果真的想學,那麼這個階段必須要經過,循序漸進,祝你好運。

『柒』 這個android項目,該如何去實現能給個思路嗎詳見問題補充。

我只能簡單的說說用藍牙傳輸到後台伺服器的思路,能不能理解和看懂就看你的了
首先是許可權要加上
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /><uses-permission android:name="android.permission.BLUETOOTH" />
然後就是重頭戲了
import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class ThinBTClient extends Activity {

private static final String TAG = "THINBTCLIENT";
private static final boolean D = true;
private BluetoothAdapter mBluetoothAdapter = null;
private BluetoothSocket btSocket = null;
private OutputStream outStream = null;
// Well known SPP UUID (will *probably* map to RFCOMM channel 1
// (default) if not in use);
// see comments in onResume().
private static final UUID MY_UUID = UUID
.fromString("***********");

private static String address = "**********"; // <==要連接的藍牙設備MAC地址

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

if (D)
Log.e(TAG, "+++ ON CREATE +++");

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
Toast.makeText(this, "Bluetooth is not available.",
Toast.LENGTH_LONG).show();
finish();
return;
}

if (!mBluetoothAdapter.isEnabled()) {
Toast.makeText(this,
"Please enable your BT and re-run this program.",
Toast.LENGTH_LONG).show();
finish();
return;
}

if (D)
Log.e(TAG, "+++ DONE IN ON CREATE, GOT LOCAL BT ADAPTER +++");
}

@Override
public void onStart() {
super.onStart();
if (D)
Log.e(TAG, "++ ON START ++");
}

@Override
public void onResume() {
super.onResume();

if (D) {
Log.e(TAG, "+ ON RESUME +");
Log.e(TAG, "+ ABOUT TO ATTEMPT CLIENT CONNECT +");
}
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
try {
btSocket = device.(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Socket creation failed.", e);
}
mBluetoothAdapter.cancelDiscovery();
try {
btSocket.connect();
Log
.e(TAG,
"ON RESUME: BT connection established, data transfer link open.");
} catch (IOException e) {
try {
btSocket.close();
} catch (IOException e2) {
Log
.e(
TAG,
"ON RESUME: Unable to close socket ring connection failure",
e2);
}
}

// Create a data stream so we can talk to server.
if (D)
Log.e(TAG, "+ ABOUT TO SAY SOMETHING TO SERVER +");

try {
outStream = btSocket.getOutputStream();
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Output stream creation failed.", e);
}

String message = "Hello message from client to server.";
byte[] msgBuffer = message.getBytes();
try {
outStream.write(msgBuffer);
} catch (IOException e) {
Log.e(TAG, "ON RESUME: Exception ring write.", e);
}
}

@Override
public void onPause() {
super.onPause();

if (D)
Log.e(TAG, "- ON PAUSE -");

if (outStream != null) {
try {
outStream.flush();
} catch (IOException e) {
Log.e(TAG, "ON PAUSE: Couldn't flush output stream.", e);
}
}

try {
btSocket.close();
} catch (IOException e2) {
Log.e(TAG, "ON PAUSE: Unable to close socket.", e2);
}
}

@Override
public void onStop() {
super.onStop();
if (D)
Log.e(TAG, "-- ON STOP --");
}

@Override
public void onDestroy() {
super.onDestroy();
if (D)
Log.e(TAG, "--- ON DESTROY ---");
}
}
這些只是思路,看我寫了這么多也應該給點分了吧,看懂了就能運用了

閱讀全文

與android項目實踐相關的資料

熱點內容
網盤忘記解壓碼怎麼辦 瀏覽:852
文件加密看不到裡面的內容 瀏覽:651
程序員腦子里都想什麼 瀏覽:430
oppp手機信任app在哪裡設置 瀏覽:185
java地址重定向 瀏覽:268
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:88
伺服器系統地址怎麼查 瀏覽:54
解壓游戲發行官 瀏覽:601
國外小伙解壓實驗 瀏覽:336
頂級大學開設加密貨幣 瀏覽:437
java重載與多態 瀏覽:528
騰訊應屆程序員 瀏覽:942
一鍵編譯程序 瀏覽:129
語音加密包哪個好 瀏覽:340
有什麼學習高中語文的app 瀏覽:282
安卓手機的表格里怎麼打勾 瀏覽:411
阿里雲伺服器有網路安全服務嗎 瀏覽:969
超解壓兔子視頻 瀏覽:24
單片機怎麼測負脈沖 瀏覽:174