网站首页 > 编程文章 正文
本篇记录时间为2023年7月21号。
android原生开发,真的有好久没弄了, 之前弄的那几年,开发IDE是eclipse,android 系统好像还是2.x版本, 现在都android 13了,时间过得是真的快。
现工作有几个关于android需求,因太久没弄android, 环境也是折磨了我好几天。
需求如下:
需求1: 更换app名字及icon。
需求2: app开机自启动,还要避免用户卸载应用。
环境检查
目标设备是android 10的工控屏, 有root权限,root权限很重要,这跟后面能否安装系统级apk有关。
// 通过adb来检查android机是否有root权限
// 1. adb连接android机,判断电脑是否通过adb连接上了android机,可终端运行下面命令查看,连接上了会有设备显示,如图1
adb devices
// 2. 进入android设备系统终端,终端输入如下命令, 如图2.
adb shell
// 3. 输入su, 来判断是否有root权限
// 输入命令后,此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。
su
// 4. 查询设备用户列表。(当我用su切换至root用户后,若不切换,下次进入也是root用户,尴尬的是普通用户名我也忘记了)
ls -l /data/system/users
// 5. 切回普通用户, 这里username要对应你设备上的用户名
su username
更换app名字及icon
// 当前IDE使用的是Android Studio
// 1. 更换app名字
打开AndroidManifest.xml-->检查application-->找到android:label-->找到strings.xml对应的标签更改即可
// 2. 更换icon,如图3.
步1: 选择工程res文件夹,右键新建-->Image Asset
步2: 在打开的Asset Studio里,Source Asset --> Path, 选择一张本地的icon图
步3: 在Scaling->Resize, 调整大小,使之适配
步4: 保存即可。
app开机自启动
Android设备(比如我们的Android手机、Android智能硬件终端......)开机时,会发送一条开机广播:android.intent.action.BOOT_COMPLETED。我们通过监听开机广播来实现。(即:我们写一个广播接收器,接收开机广播,通过Intent跳转应用的入口Activity)
// 1. 在AndroidManifest.xml中声明权限
<!-- 接收Android设备开机时发送的开机广播所需的权限 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
// 2. 自定义实现 Android应用开机自启动的广播接收器,源码如下:
// SplashActivity为启动的Activity
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Android设备开机时会发送一条开机广播:"android.intent.action.BOOT_COMPLETED"
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent splashIntent = new Intent(context, SplashActivity.class);
splashIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(splashIntent);
}
}
}
// 3.在AndroidManifest.xml中静态注册广播
<receiver
android:name=".BootBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="100">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
adb安装系统级apk
// 1. 把已打包好的apk, 安装至/system/app/即可
adb root
adb remount
adb push xx.apk /system/app/
// 2. 查看是否成功及设置权限
adb shell
cd /system/app/
chmod 777 xx.apk
// 3. 重启android机器,然后看桌面是否有指定的应用,也可尝试卸载,你会发现无卸载按钮了
猜你喜欢
- 2024-09-28 Flutter 日记 | 修改 App 图标、名称、启动页
- 2024-09-28 《神力科莎:竞速》即日开跑,首批购买玩家可免费获「洲际GT包」
- 2024-09-28 PKS系统第25课-报警组的组态和使用
- 2024-09-28 官方详解谷歌 Play 商店新格式 AAB:8 月起实施取代 APK
- 2024-09-28 像大牛一样写代码:31个Android 开发者工具
- 2024-09-28 Android 用vector画一个朦胧版的冰墩墩
- 2024-09-28 校导程家兴|Android性能优化(校导程家兴|android性能优化研究)
- 2024-09-28 这些小工具让你的Android 开发更高效
- 2024-09-28 unity 代码加密方案(unity il2cpp加密)
- 2024-09-28 程序员高效率实用工具推荐(web开发+爬虫+数据库+……)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)