Android Open Source - SmartTools I Device Info






From Project

Back to project page SmartTools.

License

The source code is released under:

GNU General Public License

If you think the Android project SmartTools listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.nj.simba;
/*  w ww  .  jav  a2s  .c o  m*/
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;


public class IDeviceInfo {
    public AppInfo[] mAppsInfo;
    public MemInfo mMemInfo;
    public DeviceFeature mFeatures;
    
    byte[] toBytes() throws IOException {
        ByteArrayOutputStream ba = new ByteArrayOutputStream();
        DataOutputStream ds = new DataOutputStream(ba);

        /**
         * 1. write mAppsInfo
         */
        ds.writeInt(mAppsInfo.length);
        for (AppInfo app : mAppsInfo) {
            ds.writeUTF(app.name);
            ds.writeUTF(app.pkgName);
            ds.writeUTF(app.pkgPath);
            ds.writeUTF(app.versionName);
            ds.writeUTF(app.installDate);

            ds.writeBoolean(app.isSystem);
            ds.writeBoolean(app.isCtsPass);
            ds.writeBoolean(app.isRunning);

            ds.writeInt(app.uid);
            ds.writeInt(app.size);

            ds.writeInt(app.icon.length);
            ds.write(app.icon);
        }
        
        /**
         * 2. write mMemInfo
         */
        ds.writeLong(mMemInfo.romTotal);
        ds.writeLong(mMemInfo.romAvail);
        ds.writeLong(mMemInfo.ramTotal);
        ds.writeLong(mMemInfo.ramAvail);
        ds.writeLong(mMemInfo.sd0Total);
        ds.writeLong(mMemInfo.sd0Avail);
        ds.writeUTF(mMemInfo.sd0Path);

        /**
         * 3. write mFeatures
         */
        ds.writeInt(mFeatures.lcdWidth);
        ds.writeInt(mFeatures.lcdHeight);
        ds.writeFloat(mFeatures.lcdDensity);
        ds.writeInt(mFeatures.androidVersion);
        ds.writeUTF(mFeatures.imageVersion);
        ds.writeUTF(mFeatures.deviceName);
        
        return ba.toByteArray();
    }
    
    public static IDeviceInfo creator(byte[] bytes) throws IOException {
        IDeviceInfo deviceInfo = new IDeviceInfo();
        ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
        DataInputStream din = new DataInputStream(bis);
        
        
        /**
         * 1. read mAppsInfo
         */
        int size = din.readInt();
        deviceInfo.mAppsInfo = new AppInfo[size];
        
        for (int i = 0; i < size; i++) {
            deviceInfo.mAppsInfo[i] = new AppInfo();

            deviceInfo.mAppsInfo[i].name = din.readUTF();
            deviceInfo.mAppsInfo[i].pkgName = din.readUTF();
            deviceInfo.mAppsInfo[i].pkgPath = din.readUTF();
            deviceInfo.mAppsInfo[i].versionName = din.readUTF();
            deviceInfo.mAppsInfo[i].installDate = din.readUTF();

            deviceInfo.mAppsInfo[i].isSystem = din.readBoolean();
            deviceInfo.mAppsInfo[i].isCtsPass = din.readBoolean();
            deviceInfo.mAppsInfo[i].isRunning = din.readBoolean();

            deviceInfo.mAppsInfo[i].uid = din.readInt();
            deviceInfo.mAppsInfo[i].size = din.readInt();
            System.out.println("uid:" + deviceInfo.mAppsInfo[i].uid);

            deviceInfo.mAppsInfo[i].icon = new byte[din.readInt()];
            System.out.println("icon length:" + deviceInfo.mAppsInfo[i].icon.length);
            din.readFully(deviceInfo.mAppsInfo[i].icon);
        }
        
        /**
         * 2. read mMemInfo
         */
        deviceInfo.mMemInfo = new MemInfo();
        deviceInfo.mMemInfo.romTotal = din.readLong();
        deviceInfo.mMemInfo.romAvail = din.readLong();
        deviceInfo.mMemInfo.ramTotal = din.readLong();
        deviceInfo.mMemInfo.ramAvail = din.readLong();
        deviceInfo.mMemInfo.sd0Total = din.readLong();
        deviceInfo.mMemInfo.sd0Avail = din.readLong();
        deviceInfo.mMemInfo.sd0Path = din.readUTF();
        
        /**
         * 3. read mFeatures
         */
        deviceInfo.mFeatures = new DeviceFeature();
        deviceInfo.mFeatures.lcdWidth = din.readInt();
        deviceInfo.mFeatures.lcdHeight = din.readInt();
        deviceInfo.mFeatures.lcdDensity = din.readFloat();
        deviceInfo.mFeatures.androidVersion = din.readInt();
        deviceInfo.mFeatures.imageVersion = din.readUTF();
        deviceInfo.mFeatures.deviceName = din.readUTF();
        
        return deviceInfo;
    }
    
    public static class AppInfo {
        public String name;
        public String pkgName;
        public String pkgPath;
        public String versionName;
        public String installDate;

        public boolean isSystem;
        public boolean isCtsPass;
        public boolean isRunning;

        public int uid;
        public int size;
        public byte[] icon;
    }

    public static class MemInfo {
        public long romTotal;
        public long romAvail;
        public long ramTotal;
        public long ramAvail;
        public long sd0Total;
        public long sd0Avail;
        public String sd0Path;
        
        /***************
        long sd2Total;
        long sd2Avail;
        String sd2Path;
        ***************/
    }

    public static class DeviceFeature {
        public float lcdDensity;
        public int lcdWidth;
        public int lcdHeight;
        
        public int androidVersion;
        public String imageVersion;
        public String deviceName;
        
        /********************
        String linuxVersion;
        String glVersion;
        String cpuVersion;
        String cpuFreq;
        String androidVersion;
        ***********************/
    }
}




Java Source Code List

com.nj.simba.BatteryReceiver.java
com.nj.simba.DaemonController.java
com.nj.simba.DeviceInfo.java
com.nj.simba.DviceInfoCollector.java
com.nj.simba.IDeviceInfo.java
com.nj.simba.PackageReceiver.java
com.nj.simba.SdcardStatuChangeReceiver.java
com.nj.simba.SmartToolService.java
com.nj.simba.app.MainFrame.java
com.nj.simba.app.SmartToolsApp.java
com.nj.simba.app.ToolbarPanel.java
com.nj.simba.base.IDeviceListener.java
com.nj.simba.base.IDeviceReqListener.java
com.nj.simba.connect.DeviceCmdWorker.java
com.nj.simba.connect.DeviceConnectWorker.java
com.nj.simba.connect.DeviceMessage.java
com.nj.simba.connect.DeviceMsgChannel.java
com.nj.simba.ctrls.FilerListRender.java
com.nj.simba.ctrls.ImageBtn.java
com.nj.simba.ctrls.LeftPanel.java
com.nj.simba.ctrls.MetroCoolBtn.java
com.nj.simba.ctrls.MyProgessBar.java
com.nj.simba.ctrls.SubPanel.java
com.nj.simba.ctrls.TabPanel.java
com.nj.simba.ctrls.ThemeButton.java
com.nj.simba.ctrls.ThemeLabel.java
com.nj.simba.ctrls.ToolbarBtn.java
com.nj.simba.cts.CtsResultReset.java
com.nj.simba.page.appmgr.AppTableRender.java
com.nj.simba.page.appmgr.DeviceAppTableModel.java
com.nj.simba.page.appmgr.PageAppMgr.java
com.nj.simba.page.device.DeviceListRender.java
com.nj.simba.page.device.DevicePanel.java
com.nj.simba.page.device.PageMyDevice.java
com.nj.simba.page.filer.FileTableRender.java
com.nj.simba.page.filer.PageFiler.java
com.nj.simba.page.logcat.ILogCatBufferChangeListener.java
com.nj.simba.page.logcat.LogCatMessageList.java
com.nj.simba.page.logcat.LogCatMessageParser.java
com.nj.simba.page.logcat.LogCatMessage.java
com.nj.simba.page.logcat.LogCatPidToNameMapper.java
com.nj.simba.page.logcat.LogCatReceiverFactory.java
com.nj.simba.page.logcat.LogCatReceiver.java
com.nj.simba.page.logcat.PageLogcat.java
com.nj.simba.utils.Config.java
com.nj.simba.utils.FileSyncHelper.java
com.nj.simba.utils.I2CTest.java
com.nj.simba.utils.IProgressMonitor.java
com.nj.simba.utils.SyncProgressHelper.java
com.nj.simba.utils.SyncProgressMonitor.java
com.nj.simba.utils.Utils.java