1 1)代碼 獲取APK安裝路徑和包名
List<ApplicationInfo> apps1 = manager.getInstalledApplications(0);
for(ApplicationInfo info:apps1){
Log.i(TAG, "info="+info.sourceDir);//path
Log.i(TAG, "info2="+info.packageName);
}
2)命令 過濾包名:
adb shell pm list packages -f | grep test
2 java 以key,value形式讀取文件
Properties defaultProperties = new Properties();
defaultProperties.load(new FileInputStream(new File(path)));
for (String key : defaultProperties.stringPropertyNames()) {
String value = defaultProperties.getProperty(key);
}
3 獲取GID 和UID
PackageManager manager = getPackageManager();
ApplicationInfo in =
manager.getApplicationInfo(this.getPackageName(),
PackageManager.GET_ACTIVITIES);
Log.i(TAG, "info1=" + in.uid);
PackageInfo pin = manager
.getPackageInfo(this.getPackageName(), PackageManager.GET_GIDS);
if (pin.gids.length > 0) {
for (int i = 0; i < pin.gids.length; i++) {
Log.i(TAG, "info=" + pin.gids[i]);
}
}
4 cursor的循環
for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext()
while(cur.moveToNext())
5 發送sms 和解析 sms pdu<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
發送sms
SmsManager smsManager = SmsManager.getDefault();
String text = "中文1222 sssss 中文 rrrrrrrtrtrtewww 你好。。。";
smsManager.sendTextMessage("139××4", null, text, null, null);
Toast.makeText(Test.this, "sdddd", Toast.LENGTH_SHORT).show();
接收public class SMSReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
Log.d("tag", smsMessage[0].getMessageBody());
}
}
<receiver android:name="com.example.bookreader.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
6 java 判斷當前運行的平臺環境System.out.println(System.getProperty("os.name"));
例如,我的是Ubuntu,打印出來的結果就是 Linuxmount -o remount,rw /system
chmod 777 testfile
chown root:root testfile
ls testfile -l
文件所有者可以用字母 u 表示. 用戶所在的組可以用字母 g 來表示. 其他人可以用字母 o 來表示. 所有人可以用字母 a 了表示.
其實就是單詞 user, group, other, all 的第一個字母.
比如對一個文件 readme.txt 執行修改其他人對這個文件的權限. 修改位其他人可以寫. 可以這樣
sudo chmod o+w readme.txt
10 Toast樣式位置的修改
Toast中定義了對其位置的修改方法,在源碼中可以看到其他模塊有調用的地方。
Toast cheatSheet= Toast.makeText(getApplicationContext(), "TExt\nwwww", Toast.LENGTH_LONG);
cheatSheet.setGravity(Gravity.TOP | Gravity.LEFT,0,0);
TextView textView = new TextView(this);
textView.setText("Mytest\nTest");
textView.setTextColor(0xFFFF0000);
textView.setTextSize(32.0f);
cheatSheet.setView(textView);
cheatSheet.show();
上述例子只是用textview替換原來的背景,同時設置位置左上角
11 Android.mk LOCAL_DEX_PREOPT:apk的odex優化開關
LOCAL_DEX_PREOPT := false 表示生成apk,而不是apk和odex.