Android OTA升级
Android端编译
$make otapackage
App升级
import android.os.RecoverySystem
@Override
public void onProgress(int progress) {
Log.i(MYTAG, "verify progress: " + progress);
verifyProgress = progress;
Message msg = Message.obtain();
msg.what = MSG_VERIFY_PACKAGE;
msg.arg1 = progress;
mMsgHandler.sendMessage(msg);
}
private void doOtaUpdate() {
new Thread() {
@Override
public void run() {
Log.i(MYTAG, "Start update .............");
File srcFile = otaFile;
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "MyApp");
try {
wl.acquire();//升级保持亮屏状态
RecoverySystem.verifyPackage(otaFile, FullscreenActivity.this, null);
if (verifyProgress < 100) {
Log.i(MYTAG, "Verify package failed!");
mMsgHandler.sendEmptyMessage(MSG_VERIFY_FAIL);
} else {
Log.i(MYTAG, "Verify package ok!");
File file = new File("/extsd/" + OTA_ZIP_DIR + otaFile.getName());
mMsgHandler.sendEmptyMessage(MSG_INSTALL_PACKAGE);
RecoverySystem.installPackage(FullscreenActivity.this, file);
}
} catch (Exception e) {
Log.e(MYTAG, e.getMessage(), e);
} finally {
wl.release();
}
}
}.start();
}
本文介绍了Android设备上的OTA(Over-the-Air)升级过程,包括验证安装包、执行升级及保持屏幕常亮等关键步骤。通过使用RecoverySystem API进行安装包验证,并通过自定义线程处理升级流程。
7301

被折叠的 条评论
为什么被折叠?



