在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ android studio 導出 jar 包(Module)并獲得手機信息
多分辨率適配常用目錄
Android 開發(fā)環(huán)境(Eclipse+ADT+Android 5.0)
Android 原型設計工具探索
Makefile 快速入門
Android Studio的NDK開發(fā)
人臉檢測-靜態(tài)
getprop 與 dumpsys 命令
Maven 編譯開源二維碼掃描項目 zxing
畫布 Canvas
組合控件
Linux 下的模擬器硬件加速
讀取 Excel
android.hardware.camera2 使用指南
橫豎屏切換
Ubuntu 下切換 JDK 版本
拍照和錄像 with Camera
文本與布局
按鈕控制 ViewPager 的左右翻頁
用 TableLayout 偽裝表格顯示數(shù)據(jù)
Preference Activity 使用詳解
模擬器如何重啟?試試 Genymotion!
獲得屏幕物理尺寸、密度及分辨率
語音識別
了解 native activity
Android Studio 導入第三方類庫、jar 包和 so 庫
啟動另一個 App/apk 中的 Activity
APK 簽名
兩個開源的圖表/報表控件
android studio 導出 jar 包(Module)并獲得手機信息
圖片的 Base64 編解碼
混淆與反編譯
Android Studio 和 Gradle
Android 5.1 SDK 下載與配置
persistableMode 與 Activity 的持久化
adb 取出安裝在手機中的 apk
Android Studio 中的源代碼管理
Handler 使用中可能引發(fā)的內存泄漏

android studio 導出 jar 包(Module)并獲得手機信息

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

一、項目中新建 Module

File—>New Module,詳細見下圖。

http://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/19-1.png" alt="fig.1" />

http://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/19-2.png" alt="fig.2" />

http://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/19-3.png" alt="fig.3" />

二、新建 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";// 系統(tǒng)內存信息文件
            String str2;
            String[] arrayOfString;
            long initial_memory = 0;

            try {
                FileReader localFileReader = new  FileReader(str1);
                BufferedReader localBufferedReader = new BufferedReader(
                        localFileReader, 8192);
                str2 = localBufferedReader.readLine();// 讀取meminfo第一行,系統(tǒng)總內存大小

                arrayOfString = str2.split("\\s+");
                for (String num : arrayOfString) {
                    Log.i(str2, num + "\t");
                }

                initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 獲得系統(tǒng)總內存,單位是KB,乘以1024轉換為Byte
                localBufferedReader.close();

            } catch (IOException e) {
            }
            return Formatter.formatFileSize(mContext, initial_memory);// Byte轉換為KB或者MB,內存大小規(guī)格化
        }
    }

并在 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://wiki.jikexueyuan.com/project/android-actual-combat-skills/images/19-4.png" alt="fig.4" />