1、动态加载:
DexClassLoader dcl = new DexClassLoader(
"/sdcard/dex.apk", "/sdcard/dexout/",
null, super.getClassLoader());
Class c = dcl.loadClass("com.package.MyClass" );
Object myObj = c.newInstance();
2、三行代码获取特定广播的所有接收者
Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED");
intent.addFlags(Intent.FLAG_DEBUG_LOG_RESOLUTION);
sendBroadcast(intent);
然后查看log
3、pc和android usb通讯:端口转发
adb forward tcp:55555 tcp:5556命令。把发往本地监听55555端口的数据转发到模拟器里的监听端口5556.
其实就是socket通信 不同的是android与pc端通信需要端口映射 通过adb forward 本机发送端口号,android端映射端口 就可以向本机指定发消息再转发到android端
Android开发进阶之NIO非阻塞包系列
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=31113&page=1#pid202518
4、替换默认程序
http://stackoverflow.com/questions/5029183/android-dialer-application
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
When someone fire an URI:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tel" />
</intent-filter>
你写个程序,侦听一下,就接管了
就好比自定义浏览器了。。。。
5、手机震动
SensorManager sensorMgr=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
SensorEventListener sEventListener=new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
setTitle(" x="+x+","+"y="+y+","+"z="+z);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
//注册重力感应监听
sensorMgr.registerListener(sEventListener, sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_GAME);
6、Android studio查看接口的实现子类:ctrl+alt+B
打印apk的证书
keytool -printcert -file xxxx.RSA
keytool -printcert -jarfile xxx.apk