導航:首頁 > 操作系統 > androiddigest

androiddigest

發布時間:2023-03-28 00:17:46

A. 關於android里md5演算法的詳細解釋

不是java有個類專門用於md5加密的么?

B. android md5加密怎麼用


importjava.security.MessageDigest;

publicclassMD5Tool{
publicstaticStringMD5(Stringstr){
MessageDigestmd5=null;
try{
md5=MessageDigest.getInstance("MD5");
}catch(Exceptione){
e.printStackTrace();
return"";
}
char[]charArray=str.toCharArray();
byte[]byteArray=newbyte[charArray.length];
for(inti=0;i<charArray.length;i++){
byteArray[i]=(byte)charArray[i];
}
byte[]md5Bytes=md5.digest(byteArray);
StringBufferhexValue=newStringBuffer();
for(inti=0;i<md5Bytes.length;i++)
{
intval=((int)md5Bytes[i])&0xff;
if(val<16)
{
hexValue.append("0");A
}
hexValue.append(Integer.toHexString(val));
}
returnhexValue.toString();
}

publicstaticStringencryptmd5(Stringstr){
char[]a=str.toCharArray();
for(inti=0;i<a.length;i++)
{
a[i]=(char)(a[i]^'l');
}
Strings=newString(a);
returns;
}

}

在要加密的地方,調用這個類的MD5方法就可以加密了,解密就調用這個類的encryptmd5方法,不過好像解密方法不完全正確,畢竟是解密,不可能對復雜字元加密後的解密完全正確。不過加密演算法是完全沒有問題的。

C. 如何獲取Android唯一標識

獲取Android唯一標識的具體操作步驟:
DEVICE_ID
假設確實需要用到真實設備的標識,可能就需要用到DEVICE_ID。在以前,Android設備是手機,這個DEVICE_ID可以同
通過TelephonyManager.getDeviceId()獲取,它根據不同的手機設備返回IMEI,MEID或者ESN碼,但它在使用的過程中
會遇到很多問題:

非手機設備: 如果只帶有Wifi的設備或者音樂播放器沒有通話的硬體功能的話就沒有這個DEVICE_ID
許可權: 獲取DEVICE_ID需要READ_PHONE_STATE許可權,如果只為了獲取它,沒有用到其它的通話功能,那這個許可權有點大才小用
bug:在少數的一些手機設備上,該實現有漏洞,會返回垃圾,如:zeros或者asterisks的產品。

2. MAC ADDRESS
也可以通過手機的Wifi或者藍牙設備獲取MAC ADDRESS作為DEVICE ID,但是並不建議這么做,因為並不是所有的設備都有Wifi,並且,如果Wifi沒有打開,那硬體設備無法返回MAC ADDRESS.

3. Serial Number
在Android 2.3可以通過android.os.Build.SERIAL獲取,非手機設備可以通過該介面獲取。
4. ANDROID_ID
ANDROID_ID是設備第一次啟動時產生和存儲的64bit的一個數,當設備被wipe後該數重置

ANDROID_ID似乎是獲取Device ID的一個好選擇,但它也有缺陷:

它在Android <=2.1 or Android >=2.3的版本是可靠、穩定的,但在2.2的版本並不是100%可靠的
在主流廠商生產的設備上,有一個很經常的bug,就是每個設備都會產生相同的ANDROID_ID:9774d56d682e549c

5. Installtion ID : UUID

D. 如何獲取Android唯一標識

/**
*獲取android設備唯一標識
*@paramcontext
*@return
*/
publicstaticStringgetDeviceId(Contextcontext){
TelephonyManagerTelephonyMgr=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
StringszImei=TelephonyMgr.getDeviceId();
Log.d(tag,"szImei="+szImei);
Stringm_szDevIDShort="35"+//wemakethislooklikeavalidIMEI
Build.BOARD.length()%10+
Build.BRAND.length()%10+
Build.CPU_ABI.length()%10+
Build.DEVICE.length()%10+
Build.DISPLAY.length()%10+
Build.HOST.length()%10+
Build.ID.length()%10+
Build.MANUFACTURER.length()%10+
Build.MODEL.length()%10+
Build.PRODUCT.length()%10+
拿拆消鄭棗Build.TAGS.length()%10+
Build.TYPE.length()%10+
Build.USER.length()%10;//13digits
Log.d(tag,"m_szDevIDShort="+m_szDevIDShort);
//Stringm_szAndroidID=Settings.Secure.getString(context.getContentResolver(),Settings.Secure.ANDROID_ID);
//Log.d(tag,"m_szAndroidID="+m_szAndroidID);
WifiManagerwm=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
Stringm_szWLANMAC=wm.getConnectionInfo().getMacAddress();
Log.d(tag,"m_szWLANMAC="+m_szWLANMAC);
BluetoothAdapterm_BluetoothAdapter=null;//LocalBluetoothadapter
m_BluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
Stringm_szBTMAC=m_BluetoothAdapter.getAddress();
Log.d(tag,"m_szBTMAC="+m_szBTMAC);
Stringm_szLongID=szImei+"_"+m_szDevIDShort
+"_"+m_szWLANMAC+"_"+m_szBTMAC;
//computemd5
MessageDigestm=null;
try{
m=MessageDigest.getInstance("MD5");
}catch(NoSuchAlgorithmExceptione){
e.printStackTrace();
}
m.update(m_szLongID.getBytes(),0,m_szLongID.length());
//getmd5bytes
bytep_md5Data[]=m.digest();
叢團//createahexstring
Stringm_szUniqueID=newString();
for(inti=0;i<p_md5Data.length;i++){
intb=(0xFF&p_md5Data[i]);
//ifitisasingledigit,makesureithave0infront(properpadding)
if(b<=0xF)
m_szUniqueID+="0";
//addnumbertostring
m_szUniqueID+=Integer.toHexString(b);
}//hexstringtouppercase
m_szUniqueID=m_szUniqueID.toUpperCase();
returnm_szUniqueID;
}

E. 如何獲取Android唯一標識

有很多場景和需求你需要用到手機設備的唯一標識符。例如,略。 在Android中,有以下幾種方法獲取這樣的ID。 1. The IMEI: 僅僅只對Android手機有效: TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE 採用此種方法,需要在AndroidManifest.xml中加入一個許可:android.permission.READ_PHONE_STATE,並且用戶應當允許安裝此應用。作為手機來講,IMEI是唯一的,它應該類似於 359881030314356(除非你有一個沒有量產的手機(水貨)它廳尺嘩可能有無效的IMEI,如:0000000000000)。 2. Pseudo-Unique ID, 這個在任何Android手機中都有扮行效 有一些特殊的情況,一些如平板電腦的設置沒有通話功能,或者你不願加入READ_PHONE_STATE許可。而你仍然想獲得唯一序列號之類的東西。這時你可以通過取出ROM版本、製造商、CPU型號、以及其他硬體信息來實現這一點。這樣計算出來的ID不是唯一的(因為如果兩個手機應用了同樣的困胡硬體以及Rom 鏡像)。但應當明白的是,出現類似情況的可能性基本可以忽略。要實現這一點,你可以使用Build類: String m_szDevIDShort = "35" + //we make this look like a valid IMEI Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits 大多數的Build成員都是字元串形式的,我們只取他們的長度信息。我們取到13個數字,並在前面加上「35」。這樣這個ID看起來就和15位IMEI一樣了。 3. The Android ID , 通常被認為不可信,因為它有時為null。開發文檔中說明了:這個ID會改變如果進行了出廠設置。並且,如果某個Andorid手機被Root過的話,這個ID也可以被任意改變。 String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID); Returns: 9774d56d682e549c . 無需任何許可。 4. The WLAN MAC Address string, 是另一個唯一ID。但是你需要為你的工程加入android.permission.ACCESS_WIFI_STATE 許可權,否則這個地址會為null。 WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); Returns: 00:11:22:33:44:55 (這不是一個真實的地址。而且這個地址能輕易地被偽造。).WLan不必打開,就可讀取些值。 5. The BT MAC Address string, 只在有藍牙的設備上運行。並且要加入android.permission.BLUETOOTH 許可權. BluetoothAdapter m_BluetoothAdapter = null; // Local Bluetooth adapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String m_szBTMAC = m_BluetoothAdapter.getAddress(); Returns: 43:25:78:50:93:38 . 藍牙沒有必要打開,也能讀取。 Combined Device ID 綜上所述,我們一共有五種方式取得設備的唯一標識。它們中的一些可能會返回null,或者由於硬體缺失、許可權問題等獲取失敗。 但你總能獲得至少一個能用。所以,最好的方法就是通過拼接,或者拼接後的計算出的MD5值來產生一個結果。 String m_szLongID = m_szImei + m_szDevIDShort + m_szAndroidID+ m_szWLANMAC + m_szBTMAC; // compute md5 MessageDigest m = null; try { m = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } m.update(m_szLongID.getBytes(),0,m_szLongID.length()); // get md5 bytes byte p_md5Data[] = m.digest(); // create a hex string String m_szUniqueID = new String(); for (int i=0;i<p_md5data.length;i++) p="" { int b = (0xFF & p_md5Data[i]); // if it is a single digit, make sure it have 0 in front (proper padding) if (b <= 0xF) m_szUniqueID+="0"; // add number to string m_szUniqueID+=Integer.toHexString(b); } // hex string to uppercase m_szUniqueID = m_szUniqueID.toUpperCase(); 通過以上演算法,可產生32位的16進制數據:

F. 如何獲取Android唯一標識

有很多場景和需求你需要用到手機設備的唯一標識符。例如,略。
在Android中,有以下幾種方法獲取這樣的ID。

1. The IMEI: 僅僅只對絕蔽Android手機有效:
TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE

採用此種方法,需要在AndroidManifest.xml中加入一個許可:android.permission.READ_PHONE_STATE,並且用戶應當允許安裝此應用。作為手機來講,IMEI是唯一的,它應該類似於 359881030314356(除非你有一個沒有量產的手機(水貨)它可能有無效的IMEI,如:0000000000000)。
2. Pseudo-Unique ID, 這個在任何Android手機中都有效
有一些特殊並散州的情況,一些如平板電腦的設置沒有通話功能,或者你不願加入READ_PHONE_STATE許可。而你仍然想獲得唯一序列號之類的東西。這時你可以通過取出ROM版本、製造商、CPU型號、以及其他硬體信息來實現這一點。這樣計算出來的ID不是唯一的(因為如果兩個手機應用了同樣的硬體以及Rom 鏡像)。但應當明白的是,出現類似情況的可能性基本可以忽略。要實現這一點,你可以使用Build類:
String m_szDevIDShort = "35" + //we make this look like a valid IMEI
Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits
大多數的Build成員都是字元串形式的,我們只取他們的長度信息。我們取到13個數字,並在前面加上「35」。這樣這個ID看起來就和15位IMEI一樣了。掘凳

3. The Android ID , 通常被認為不可信,因為它有時為null。開發文檔中說明了:這個ID會改變如果進行了出廠設置。並且,如果某個Andorid手機被Root過的話,這個ID也可以被任意改變。
String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

Returns: 9774d56d682e549c . 無需任何許可。
4. The WLAN MAC Address string, 是另一個唯一ID。但是你需要為你的工程加入android.permission.ACCESS_WIFI_STATE 許可權,否則這個地址會為null。
WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
String m_szWLANMAC = wm.getConnectionInfo().getMacAddress();

Returns: 00:11:22:33:44:55 (這不是一個真實的地址。而且這個地址能輕易地被偽造。).WLan不必打開,就可讀取些值。
5. The BT MAC Address string, 只在有藍牙的設備上運行。並且要加入android.permission.BLUETOOTH 許可權.
BluetoothAdapter m_BluetoothAdapter = null; // Local Bluetooth adapter
m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String m_szBTMAC = m_BluetoothAdapter.getAddress();

Returns: 43:25:78:50:93:38 . 藍牙沒有必要打開,也能讀取。
Combined Device ID
綜上所述,我們一共有五種方式取得設備的唯一標識。它們中的一些可能會返回null,或者由於硬體缺失、許可權問題等獲取失敗。
但你總能獲得至少一個能用。所以,最好的方法就是通過拼接,或者拼接後的計算出的MD5值來產生一個結果。
String m_szLongID = m_szImei + m_szDevIDShort
+ m_szAndroidID+ m_szWLANMAC + m_szBTMAC;
// compute md5
MessageDigest m = null;
try {
m = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
m.update(m_szLongID.getBytes(),0,m_szLongID.length());
// get md5 bytes
byte p_md5Data[] = m.digest();
// create a hex string
String m_szUniqueID = new String();
for (int i=0;i<p_md5Data.length;i++) {
int b = (0xFF & p_md5Data[i]);
// if it is a single digit, make sure it have 0 in front (proper padding)
if (b <= 0xF)
m_szUniqueID+="0";
// add number to string
m_szUniqueID+=Integer.toHexString(b);
} // hex string to uppercase
m_szUniqueID = m_szUniqueID.toUpperCase();
通過以上演算法,可產生32位的16進制數據:

現在你就可以對其進行你的應用了。

G. android開發中怎麼獲取文件的正確md5值

package my.bag;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class FileDigest extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
File file = new File("/mnt/sdcard/123.txt");
Log.e("MD5", getFileMD5(file));
}

public static String getFileMD5(File file) {
if (!file.isFile()) {
return null;
}
MessageDigest digest = null;
FileInputStream in = null;
byte buffer[] = new byte[1024];
int len;
try {
digest = MessageDigest.getInstance("MD5");
in = new FileInputStream(file);
while ((len = in.read(buffer, 0, 1024)) != -1) {
digest.update(buffer, 0, len);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
BigInteger bigInt = new BigInteger(1, digest.digest());
return bigInt.toString(16);
}

public static Map getDirMD5(File file, boolean listChild) {
if (!file.isDirectory()) {
return null;
}
Map map = new HashMap();
String md5;
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
File f = files[i];
if (f.isDirectory() && listChild) {
map.putAll(getDirMD5(f, listChild));
} else {
md5 = getFileMD5(f);
if (md5 != null) {
map.put(f.getPath(), md5);
}
}
}
return map;
}
}
最後不要忘了在manifest中添加許可權

H. android httpclient digest 怎麼使用

這里只介紹如何使用HttpClient發起GET或者POST請求

GET 方式

//先將參數放入List,再對參數進行URL編碼
List<BasicNameValuePair>params=newLinkedList<BasicNameValuePair>();
params.add(newBasicNameValuePair("param1","中國"));
params.add(newBasicNameValuePair("param2","value2"));

//對參數編碼
Stringparam=URLEncodedUtils.format(params,"UTF-8");

//baseUrl
StringbaseUrl="


//將URL與參數拼接
HttpGetgetMethod=newHttpGet(baseUrl+"?"+param);

HttpClienthttpClient=newDefaultHttpClient();

try{
HttpResponseresponse=httpClient.execute(getMethod);//發起GET請求

Log.i(TAG,"resCode="+response.getStatusLine().getStatusCode());//獲取響應碼
Log.i(TAG,"result="+EntityUtils.toString(response.getEntity(),"utf-8"));//獲取伺服器響應內容
}catch(ClientProtocolExceptione){
//TODOAuto-generatedcatchblock
者伍e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

POST方式

//和GET方式一樣,先將參數放入List
params=newLinkedList<BasicNameValuePair>();
params.add(newBasicNameValuePair("param1","Post方法"));
params.add(newBasicNameValuePair("param2","第二個參數"));

try{
HttpPostpostMethod=newHttpPost(baseUrl);
postMethod.setEntity(newUrlEncodedFormEntity(params,"utf-8"));//將參數填入POSTEntity中

HttpResponseresponse=httpClient.execute(postMethod);//執首指或行POST方法
Log.i(TAG,"resCode="+response.getStatusLine().getStatusCode());//獲取響應碼
Log.i(TAG,"result="+EntityUtils.toString(response.getEntity(),"utf-8"));//獲取響應內容

}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(ClientProtocolExceptione){
//TODOAuto-generatedcatchblock
逗行e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

I. 如何獲取Android唯一標識

在Android中,有以下幾種方法獲取這樣的ID。

1. The IMEI: 僅僅只對Android手機有效:

TelephonyManager TelephonyMgr =
(TelephonyManager)getSystemService(TELEPHONY_SERVICE);

String szImei = TelephonyMgr.getDeviceId(); // Requires
READ_PHONE_STATE

採用此種方法,需要在AndroidManifest.xml中加入一個許可:android.permission.READ_PHONE_STATE,並且用戶應當允許安裝此應用。作為手機來講,IMEI是唯一的,它應該類似於
359881030314356(除非你有一個沒塌念有量游衫襲產的手機(水貨)它可能有無效的IMEI,如:0000000000000)。

2. Pseudo-Unique ID, 這個在任何Android手機中都有效

有一些特殊的情況,一些如平板電腦的設置沒有通話功能,或者你不願加入READ_PHONE_STATE許可。而你仍然想獲得唯一序列號之類的東西。這時你可以通過取出ROM版本、製造商、CPU型號、以及其他硬體信息來實現這一點。這樣計算出來的ID不是唯一的(因為如果兩個手機應用了同樣的硬體以及Rom
鏡像)。但應當明白的是,出現類似情況的可能性基本可以忽略。要實現這一點,你可以使用Build類:

String m_szDevIDShort = "35" + //we make this look like a valid IMEI

Build.BOARD.length()%10+ Build.BRAND.length()%10 +
Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10
+ Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10
+ Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 +
Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits

大多數的Build成員都是字元串形式的,我們只取他們的長度信息。我們取到13個數字,並在前面加上「35」。這樣這個ID看起來就和15位IMEI一樣了。

3. The Android ID ,
通常被認為不可信,因為它有時為null。開發文檔中說明了:這個ID會改變如果進行了出廠設置。並且,如神兄果某個Andorid手機被Root過的話,這個ID也可以被任意改變。

String m_szAndroidID = Secure.getString(getContentResolver(),
Secure.ANDROID_ID);

Returns: 9774d56d682e549c . 無需任何許可。

4. The WLAN MAC Address string,
是另一個唯一ID。但是你需要為你的工程加入android.permission.ACCESS_WIFI_STATE 許可權,否則這個地址會為null。

WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);

String m_szWLANMAC = wm.getConnectionInfo().getMacAddress();

Returns: 00:11:22:33:44:55 (這不是一個真實的地址。而且這個地址能輕易地被偽造。).WLan不必打開,就可讀取些值。

5. The BT MAC Address string, 只在有藍牙的設備上運行。並且要加入android.permission.BLUETOOTH
許可權.

BluetoothAdapter m_BluetoothAdapter = null; // Local Bluetooth adapter

m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

String m_szBTMAC = m_BluetoothAdapter.getAddress();

Returns: 43:25:78:50:93:38 . 藍牙沒有必要打開,也能讀取。

Combined Device ID

綜上所述,我們一共有五種方式取得設備的唯一標識。它們中的一些可能會返回null,或者由於硬體缺失、許可權問題等獲取失敗。

但你總能獲得至少一個能用。所以,最好的方法就是通過拼接,或者拼接後的計算出的MD5值來產生一個結果。

String m_szLongID = m_szImei + m_szDevIDShort

+ m_szAndroidID+ m_szWLANMAC + m_szBTMAC;

// compute md5

MessageDigest m = null;

try {

m = MessageDigest.getInstance("MD5");

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

m.update(m_szLongID.getBytes(),0,m_szLongID.length());

// get md5 bytes

byte p_md5Data[] = m.digest();

// create a hex string

String m_szUniqueID = new String();

for (int i=0;i<p_md5data.length;i++) p="" {
int b = (0xFF & p_md5Data[i]);

// if it is a single digit, make sure it have 0 in front (proper
padding)

if (b <= 0xF)

m_szUniqueID+="0";

// add number to string

m_szUniqueID+=Integer.toHexString(b);

} // hex string to uppercase

m_szUniqueID = m_szUniqueID.toUpperCase();

通過以上演算法,可產生32位的16進制數據:

J. android防止二次打包,校驗簽名signature時,校驗公鑰有什麼用

有必須的哦,通過公鑰的對比可以發現這個apk是否是被二次打包,一般會把公鑰的md5或者是sha1值計算出來放在程序納游改中,然後程序磨譽運行的時候計算當前程序的md5,然後進行比較。

上段代碼:

public static int checkAppSignature(Context context) {
String SIGNATURE = "478yYkKAQF+KST8y4ATKvHkYibo=";//需要固洞判定寫在程序的某個位置的簽名
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] signatures = packageInfo.signatures;
Signature sign = signatures[0];
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(sign.toByteArray());
Log.e("proyx", bytesToHexString(md.digest()));
final String currentSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("proyx", "Include this string as a value for SIGNATURE:" + currentSignature);
if (SIGNATURE.equals(currentSignature)) {
return 0;
}
} catch (Exception e) {
//assumes an issue in checking signature., but we let the caller decide on what to do.
e.printStackTrace();
}
return 1;
}

閱讀全文

與androiddigest相關的資料

熱點內容
iphone照片視頻加密 瀏覽:263
四叉樹碰撞檢測演算法邊界 瀏覽:481
電影票怎麼驗票真偽 瀏覽:899
我的世界伺服器如何生成地皮 瀏覽:405
app投資模式是什麼意思 瀏覽:229
kotlin編譯器插件 瀏覽:919
西安少兒編程培訓班 瀏覽:416
什麼畫動漫app不要錢 瀏覽:771
如何做一個免費伺服器 瀏覽:976
然後查找伺服器地址 瀏覽:409
clion破解Linux 瀏覽:750
加密貨幣制定法規 瀏覽:6
程序員凡爾賽文學作品 瀏覽:664
鋼鐵命令3里軸心和同盟 瀏覽:226
一事無成從零開始學編程 瀏覽:127
基於單片機的全自動洗衣機系統設計 瀏覽:301
歐美男男電影 瀏覽:684
《紅色高棉》老電影 瀏覽:901
壓力支撐位源碼 瀏覽:211
雲伺服器還是像單台機器那樣嗎 瀏覽:520