`

anroid 开发小知识点

 
阅读更多

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,打印出来的结果就是 Linux
7 git add,git commint 之后,发现多git add 了一个文件,这个时候,可以使用 git reset –soft commitId:回  退到某个版本。如果还要提交,直接commit即可
  而  git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
 8 没有root权限时,给某个文件权限并移动
adb push testfile /data/local/tmp
su
mount -o remount,rw /system
chmod 777 testfile
chown root:root testfile
ls testfile -l
例如:使用vpn,修改/system/etc/hosts 文件。保持用户和权限和原来的文件一致。
9 linux 一些权限
http://hubingforever.blog.163.com/blog/static/171040579201041432333648/
2个操作符. "+" 表示增加权限. "-" 表示消减权限.
文件所有者可以用字母 u 表示. 用户所在的组可以用字母 g 来表示. 其他人可以用字母 来表示. 所有人可以用字母 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.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics