1、自定义应用标题
在Activity的onCreate方法中加入以下代码,顺序要注意,不然发现效果不对。
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.mainactivity); //Activity的布局
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,布局资源id); //标题栏的布局
2、关闭屏幕旋转。在AndroidManifest.xml注册Activity时加上后面两个属性。android:screenOrientation:屏幕方向。
<activity android:name=".FlowActivity" android:configChanges="keyboardHidden|orientation"
android:screenOrientation="landscape" />
3、卸载应用。
private void uninstallPkg(String packageName) {
// Create new intent to launch Uninstaller activity
Uri packageURI = Uri.parse("package:"+packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
setIntentAndFinish(true, true);
}
String path = Environment.getDataDirectory().getPath();
StatFs stat = new StatFs(path);
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
5、关闭/恢复窗口动画,需要系统权限。
//关闭窗口动画
IWindowManager mWindowManager = IWindowManager.Stub.asInterface(ServiceManager
.getService("window"));
float[] mAnimationScales;
try {
mAnimationScales = mWindowManager.getAnimationScales();//保存关闭之前窗口动画效果
mWindowManager.setAnimationScales(new float[] { 0, 0 });
} catch (RemoteException e) {
e.printStackTrace();
}
//恢复窗口动画
mWindowManager.setAnimationScales(mAnimationScales);
6、设置中如何跳转到应用详细信息界面。
Intent intent = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", 应用包名 , null));
// start new activity to display extended information
startActivityForResult(intent, 1);
7、屏幕旋转时不调用onCreate方法。
manifest.xml中注册activity时加入属性:android:configChanges="orientation|keyboardHidden"
Activity中重写onConfigurationChanged方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
8、安装应用
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://xxx.apk","application/vnd.android.package-archive");
startActivity(intent);
9、从应用进入主界面(Launcher)
Intent i = new Intent(Intent.ACTION_MAIN);
// i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //如果是服务里调用,必须加入new task标识
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
10、灭屏
try {
IPowerManager power = IPowerManager.Stub.asInterface(
ServiceManager.getService("power"));
if (power != null) {
power.goToSleep(SystemClock.uptimeMillis());
}
} catch (RemoteException doe) {
}
需要权限<uses-permission android:name="android.permission.DEVICE_POWER"/>
11、亮屏
PowerManager powerManager = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP,"");
wakeLock.acquire();
需要权限<uses-permission android:name="android.permission.WAKE_LOCK"/>
PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
12、获取正在运行的程序所占内存大小(从设置中扒出来的代码)
Debug.MemoryInfo[] mems;
try {
mems = ActivityManagerNative.getDefault()
.getProcessMemoryInfo(pids_array);
int i = 0;
for(Debug.MemoryInfo mem : mems){
double mSize = ((double)mem.getTotalPss()) * 1024;
//System.out.println(pids_array[i] + " - " + mSize);
}
} catch (RemoteException e) {
e.printStackTrace();
}