Android實戰技巧之十九:android studio匯出jar包(Module)並獲得手機資訊

來源:互聯網
上載者:User

標籤:as   module   jar   手機資訊   

AS中並沒有獨立的Module 工程,但是可以在普通的Project中加入Module。所謂的Module就是我們通常所指的模組化的一個單元,並常常以jar包的形式存在。下面以一個擷取手機資訊的例子示範AS中的模組化。

一、項目中建立Module

File—>New Module,詳細見。


二、建立Java類

建立一個PhoneInfo類,內容如下:

package com.linc.mylibrary;import android.content.Context;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.os.Build;import android.telephony.TelephonyManager;import android.text.format.Formatter;import android.util.Log;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;/** * Created by linc on 15-3-19. */public class PhoneInfo {    private String TAG = "PhoneInfo";    private Context mContext;    private TelephonyManager mPhoneManager;    public PhoneInfo(Context context) {        mContext = context;        mPhoneManager = (TelephonyManager)mContext.getSystemService(Context.TELEPHONY_SERVICE);    }    public String getDeviceId() {        return mPhoneManager.getDeviceId();    }    public String getPhoneModule() {        return Build.MODEL;    }    public String getSerialNumber() {        return Build.SERIAL;    }    public String getPhoneNumber() {        return mPhoneManager.getLine1Number();    }    public String getMacAddress(){        String result = "";        WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);        WifiInfo wifiInfo = wifiManager.getConnectionInfo();        result = wifiInfo.getMacAddress();        Log.i(TAG, "macAdd:" + result);        return result;    }    public String[] getCpuInfo() {        String str1 = "/proc/cpuinfo";        String str2 = "";        String[] cpuInfo = {"", ""};  //1-cpu型號  //2-cpu頻率        String[] arrayOfString;        try {            FileReader fr = new FileReader(str1);            BufferedReader localBufferedReader = new BufferedReader(fr, 8192);            str2 = localBufferedReader.readLine();            arrayOfString = str2.split("\\s+");            for (int i = 2; i < arrayOfString.length; i++) {                cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";            }            str2 = localBufferedReader.readLine();            arrayOfString = str2.split("\\s+");            cpuInfo[1] += arrayOfString[2];            localBufferedReader.close();        } catch (IOException e) {        }        Log.i(TAG, "cpuinfo:" + cpuInfo[0] + " " + cpuInfo[1]);        return cpuInfo;    }    public String getTotalMemory() {        String str1 = "/proc/meminfo";// 系統記憶體資訊檔        String str2;        String[] arrayOfString;        long initial_memory = 0;        try {            FileReader localFileReader = new FileReader(str1);            BufferedReader localBufferedReader = new BufferedReader(                    localFileReader, 8192);            str2 = localBufferedReader.readLine();// 讀取meminfo第一行,系統總記憶體大小            arrayOfString = str2.split("\\s+");            for (String num : arrayOfString) {                Log.i(str2, num + "\t");            }            initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 獲得系統總記憶體,單位是KB,乘以1024轉換為Byte            localBufferedReader.close();        } catch (IOException e) {        }        return Formatter.formatFileSize(mContext, initial_memory);// Byte轉換為KB或者MB,記憶體大小規格化    }}

並在Module的AndroidManifest檔案中加入兩個許可權:

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
三、app中引入此module

在app的build.gradle中加入此module的dependency,如下:

dependencies {    compile ‘com.android.support:appcompat-v7:21.0.3‘    compile project(‘:mylibrary‘)}

在app的MainActivity中加入測試代碼:

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        PhoneInfo info = new PhoneInfo(this);        Log.d(TAG,"devices id: "+info.getDeviceId());        Log.d(TAG,"getPhoneModule: "+info.getPhoneModule());        Log.d(TAG,"getSerialNumber: "+info.getSerialNumber());        Log.d(TAG,"getPhoneNumber: "+info.getPhoneNumber());        Log.d(TAG,"getMacAddress: "+info.getMacAddress());        Log.d(TAG,"getCpuInfo: "+info.getCpuInfo());        Log.d(TAG,"getTotalMemory: "+info.getTotalMemory());    }
四、jar的產生

項目編譯之後jar會在下面的目錄找到:

./mylibrary/build/intermediates/bundles/debug/classes.jar./mylibrary/build/intermediates/bundles/release/classes.jar
五、Module的移除

先要在File—>Project Structure中將此module“減“掉後才能在項目中Module右鍵的Delete鍵可用。

參考:
http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html
http://www.cnblogs.com/helloandroid/articles/2210334.html
http://blog.csdn.net/hyr83960944/article/details/37519299

Android實戰技巧之十九:android studio匯出jar包(Module)並獲得手機資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.