91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于迅為RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機(jī)自啟動技術(shù)分享

北京迅為電子 ? 2024-11-21 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應(yīng)用場景:

在一些場景中需要系統(tǒng)啟動以后就讓應(yīng)用程序運(yùn)行起來,如閘機(jī)打卡系統(tǒng),智能點餐系統(tǒng),廣告機(jī)系統(tǒng)等等。這個需求叫做自啟動。

除全國產(chǎn)版本核心板以外,RK3568核心板還有工業(yè)級,商業(yè)級,連接器和郵票孔多種版本。全國產(chǎn)版本核心板與其他版本核心板完全兼容??梢灾С謬a(chǎn)和非國產(chǎn)核心板的無縫切換,助力產(chǎn)品升級和國產(chǎn)化項目落地。

wKgaoWc-y6eANjZGAANgikMPd7w660.png

RK3568 Android11實現(xiàn)APP自啟動技術(shù)分享

平臺:迅為iTOP-3568開發(fā)板

第一步:添加自啟服務(wù)

修改RK3568 Android11源碼frameworks\base\core\java\com\android\internal\app\ResolverActivity.java文件,添加如下藍(lán)色字體的代碼。

import java.util.Objects;

import java.util.Set;

import java.util.concurrent.Executor;

import java.util.function.Consumer;

import android.os.SystemProperties;

import android.app.role.RoleManager;

/**

* This activity is displayed when the system attempts to start an Intent for

@@ -341,6 +345,18 @@ public class ResolverActivity extends Activity implements

protected void onCreate(Bundle savedInstanceState, Intent intent,

CharSequence title, int defaultTitleRes, Intent[] initialIntents,

List rList, boolean supportsAlwaysUseOption) {

String LauncherPkg = SystemProperties.get("persist.sys.def_launherpag");



if(LauncherPkg!=null/* && !isDefaultLauncher(this,LauncherPkg)*/){

Log.v("defaultLauncher","-----found default launcher pkg:"+LauncherPkg);

setDefaltLauncher(this,LauncherPkg);

startDefaultLauncher(this,LauncherPkg);

finish();

return;

}

setTheme(appliedThemeResId());

super.onCreate(savedInstanceState);

@@ -433,6 +449,47 @@ public class ResolverActivity extends Activity implements

intent.getAction() + ":" + intent.getType() + ":"

+ (categories != null ? Arrays.toString(categories.toArray()) : ""));

}

public void setDefaltLauncher(Context context, String packageName) {

String roleName = "android.app.role.HOME";

boolean add = true;

int flags = 0;

UserHandle user = android.os.Process.myUserHandle();

RoleManager roleManager = context.getSystemService(RoleManager.class);

Executor executor = context.getMainExecutor();

Consumer< Boolean > callback = successful -> {

if (successful) {

Log.v("defaultLauncher","set Defalt Launcher successful" );

} else {

Log.v("defaultLauncher","set Defalt Launcher failed ");

}

};

roleManager.addRoleHolderAsUser(roleName, packageName, flags, user, executor, callback);

}

public void startDefaultLauncher(Context context, String packageName) {

Intent intent = new Intent();

PackageManager pm = context.getPackageManager();

intent = pm.getLaunchIntentForPackage(packageName);

if (intent != null)

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

try {

context.startActivity(intent);

} catch (Exception e) {

Log.v("defaultLauncher","start Default Launcher failed,not find package:"+packageName );

}

}

public boolean isDefaultLauncher(Context context,String launcherPkg){

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_HOME);

ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);

String currentHomePackage = resolveInfo.activityInfo.packageName;

Log.v("defaultLauncher","-currentHomePackage:"+currentHomePackage);

return launcherPkg.equals(currentHomePackage);

}

private boolean isIntentPicker() {

return getClass().equals(ResolverActivity.class);

■第二步:添加APP

接下來將需要自啟動的APP放到device/rockchip/rk356x/rk3568_r/preinstall_del/目錄下,如果沒有preinstall_del目錄的話需要手動新建一個preinstall_del目錄即可,然后添加以下文件Android.mk,xxx.apk(APP),preinstall.mk這三個文件。

Android.mk文件內(nèi)容如下所示:

include $(call all-subdir-makefiles)

preinstall.mk文件內(nèi)容:

PRODUCT_PACKAGES += xxx

xxx為APP名字,例如demo.apk。這份目錄不僅是APK的預(yù)裝指定位置,當(dāng)您希望新增APK進(jìn)行預(yù)裝時,可將該APK文件復(fù)制至“preinstall_del/”目錄下,并隨后將APK的名稱增補(bǔ)至“preinstall.mk”配置文件中,以完成預(yù)安裝的準(zhǔn)備工作。這樣的操作確保了APK能夠按照預(yù)期被系統(tǒng)識別并預(yù)裝至目標(biāo)設(shè)備中。

第三步:添加APP包名

修改RK3568Android11源碼文件device/rockchip/rk356x/rk3568_r/rk3568_r.mk,例如包名為:com.example.demo,在rk3568_r.mk中下面藍(lán)色字體代碼。

PRODUCT_PROPERTY_OVERRIDES += persist.sys.timezone=Asia/Shanghai

PRODUCT_PROPERTY_OVERRIDES += ro.vendor.hdmirotationlock=true

#PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A-1

PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI

PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launherpag=com.example.demo

修改完畢之后,保存修改的文件,重新編譯Android源碼,然后燒寫Android鏡像進(jìn)行測試。

E

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6288

    瀏覽量

    118015
  • RK3568
    +關(guān)注

    關(guān)注

    5

    文章

    644

    瀏覽量

    7910
  • 迅為電子
    +關(guān)注

    關(guān)注

    0

    文章

    95

    瀏覽量

    357
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    技術(shù)分享 | RK3568 Android11 如何實現(xiàn)自啟動應(yīng)用

    隨著Android版本的不斷升級,對于應(yīng)用權(quán)限的管理會更加苛刻。我司IAC-RK3568-Kit開發(fā)板默認(rèn)搭載Android11,相比較之前RK3288的產(chǎn)品安卓版本變更較大,有些客戶反饋之前
    的頭像 發(fā)表于 02-05 17:26 ?392次閱讀
    <b class='flag-5'>技術(shù)</b>分享 | <b class='flag-5'>RK3568</b> Android11 如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>自啟動</b>應(yīng)用

    驅(qū)動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略

    驅(qū)動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略
    的頭像 發(fā)表于 12-30 15:42 ?883次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>驅(qū)動<b class='flag-5'>開發(fā)</b>實戰(zhàn):iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>eDP屏幕移植全攻略

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實戰(zhàn):RK3568內(nèi)核模塊符號導(dǎo)出詳解

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實戰(zhàn):
    的頭像 發(fā)表于 11-21 13:25 ?1176次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業(yè)<b class='flag-5'>RK3568</b>穩(wěn)定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>Linux驅(qū)動<b class='flag-5'>開發(fā)</b>實戰(zhàn):<b class='flag-5'>RK3568</b>內(nèi)核模塊符號導(dǎo)出詳解

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板驅(qū)動開發(fā)第4章驅(qū)動模塊傳參實驗

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板驅(qū)動開發(fā)第4章驅(qū)動模塊傳參實驗
    的頭像 發(fā)表于 11-06 14:25 ?370次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業(yè)<b class='flag-5'>RK3568</b>穩(wěn)定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>驅(qū)動<b class='flag-5'>開發(fā)</b>第4章驅(qū)動模塊傳參實驗

    避坑指南!RK3568開發(fā)板選型,這5點沒看清千萬別下手!(附驅(qū)動開發(fā)指南資源)

    避坑指南!RK3568開發(fā)板選型,這5點沒看清千萬別下手!(附驅(qū)動開發(fā)指南資源)
    的頭像 發(fā)表于 10-30 15:49 ?764次閱讀
    避坑指南!<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>選型,這5點沒看清千萬別下手!(附<b class='flag-5'>迅</b><b class='flag-5'>為</b>驅(qū)動<b class='flag-5'>開發(fā)</b>指南資源)

    RK3568開發(fā)板模型推理測試實戰(zhàn)LPRNet?車牌識別

    RK3568開發(fā)板模型推理測試實戰(zhàn)LPRNet 車牌識別
    的頭像 發(fā)表于 08-25 14:55 ?1309次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>模型推理測試實戰(zhàn)LPRNet?車牌識別

    RK3568?重制版RK3568驅(qū)動指南全面升級

    RK3568 重制版RK3568驅(qū)動指南全面升級
    的頭像 發(fā)表于 07-28 15:25 ?2489次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>?重制版<b class='flag-5'>RK3568</b>驅(qū)動指南全面升級

    技術(shù)分享 | RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤

    技術(shù)分享 | RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤
    的頭像 發(fā)表于 06-04 10:57 ?1111次閱讀
    <b class='flag-5'>技術(shù)</b>分享 | <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>如何將 Linux 板卡虛擬成U盤

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
    的頭像 發(fā)表于 05-29 14:05 ?1013次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    RK3568驅(qū)動指南GPIO子系統(tǒng) GPIO操作函數(shù)實驗

    電子RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng) GPIO操作函數(shù)實驗
    的頭像 發(fā)表于 05-28 15:24 ?1324次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>驅(qū)動指南GPIO子系統(tǒng) GPIO操作函數(shù)實驗

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
    的頭像 發(fā)表于 05-26 15:39 ?1515次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗

    【北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置UART

    【北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置UART
    的頭像 發(fā)表于 03-25 11:02 ?1724次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動<b class='flag-5'>開發(fā)</b>實操-HDF驅(qū)動配置UART

    【北京】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)-第4章 UART基礎(chǔ)知識

    【北京】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)-第4章 UART基礎(chǔ)知識
    的頭像 發(fā)表于 03-17 15:50 ?1034次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>OpenHarmony系統(tǒng)南向驅(qū)動<b class='flag-5'>開發(fā)</b>-第4章 UART基礎(chǔ)知識

    北京iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置LED

    北京iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實操-HDF驅(qū)動配置LED
    的頭像 發(fā)表于 03-14 14:41 ?1346次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>OpenHarmony系統(tǒng)南向驅(qū)動<b class='flag-5'>開發(fā)</b>實操-HDF驅(qū)動配置LED

    北京RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)內(nèi)核HDF驅(qū)動框架架構(gòu)

    北京RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)內(nèi)核HDF驅(qū)動框架架構(gòu)
    的頭像 發(fā)表于 03-11 14:13 ?1841次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>OpenHarmony系統(tǒng)南向驅(qū)動<b class='flag-5'>開發(fā)</b>內(nèi)核HDF驅(qū)動框架架構(gòu)