添加资源到android源码中-修改framework层

编译带有资源的jar包,需要更改frameworks层,方法如下:

一.增加png类型的图片资源

1.将appupdate模块所有用到的png格式图片拷贝到framework/base/core/res/res/drawable-mdpi里。但是要确保没有与原生的没有重名文件。

2.在framework/base/core/res/res/values/public.xml文件里增加对这些图片的声明。(例: <public type="drawable"name="upg_btn_default_small_normal"id="0x010800b4" />,此id要保证唯一,以drawable类型的最后一个id为基数增加)

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

二.增加string资源

1.将appupdate模块定义的string.xml里面的所以string拷贝到framework/base/core/res/res/values/string.xml里。但是确保没有重名的。

2.在framework/base/core/res/res/values/public.xml文件里增加对这些string的声明。(例:<publictype="string" name="upg_app_name" id="0x01040017"/>此id要保证唯一,以string类型的最后一个id为基数增加)

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

三.增加layout资源

1.将appupdate模块的layout文件里定义的5个xml文件拷贝到在framework/base/core/res/res/layout里。但是要确保没有重名文件被覆盖。

2.在framework/base/core/res/res/values/public.xml文件里增加对这些layout的声明。(例:<publictype="layout" name="appupg_checkspace"id="0x01090018" />此id要保证唯一,以layout类型的最后一个id为基数增加)

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

说明:若layout中包含xml,直接把xml拷贝到framework相应目录下。例如(1)button的selector。将appupdate模块的drawable/common_btn_selector.xml文件拷贝到framework/base/core/res/res/drawable里,确保没有重名文件。

(2)将appupdate模块的anim/loading.xml文件拷贝到framework/base/core/res/res/anim里,确保没有重名文件。

四.增加style资源

1.将appupdate模块的style文件里定义的所有style拷贝到framework/base/core/res/res/values/style.xml里。确保没有覆盖原生的style.

2.在framework/base/core/res/res/values/public.xml文件里增加对这些style的声明。

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

五.增加color资源

1.将appupdate模块的style文件里定义的所有style拷贝到framework/base/core/res/res/values/color.xml里。确保没有覆盖原生的color.

2.在framework/base/core/res/res/values/public.xml文件里增加对这些color的声明。

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

六.增加资源id

1.在framework/base/core/res/res/values/ids.xml里定义你jar中所用的id(R.id)*)。确保没有覆盖原生的.

2.在framework/base/core/res/res/values/public.xml文件里增加对这些id的声明。

3.framework/base/core/res/res/ 下mm编译

  1. \aosp下 make update-api

最后,eclipse源码中要修改以下:

  1. 把R.*.*全部替换成android.R.*.*例如R.layout.appupg_tip_dialog 要更换为android.R.layout.appupg_tip_dialog

2.资源文件中对资源的调用需要添加android:如<TextView android:text="@ string/upg_tip"要改成<TextViewandroid:text="@android:string/upg_tip"

3.Import *.*.*.R删除。

linux下jar包路径

aosp\out\target\common\obj\JAVA_LIBRARIES\hisenseAppUpgrade_sdk_intermediates

另,要想在eclipse环境下编译修改后的应用自升级jar。

1, 从编译的源码中拷贝framework.jar及framework-res.apk两个文件,解压缩后。从framework.jar中拷贝出android文件夹,从framework-res.apk拷贝出res文件夹,然后添加到android.jar包中。替换自升级工程的android.jar。然后把res文件夹下出现X的文件删除即可。

应用自升级修改方法

资源修改要通过frameworks层,修改后要在源码中编译。

相关推荐
末代iOS程序员华仔7 分钟前
OPC + Flutter + Swift:跨平台应用上架与专业知识点获客实战指南
开发语言·flutter·swift
脚踏实地皮皮晨8 分钟前
003004002_UniformGrid控件的使用方法
开发语言·c#·.net·wpf·visual studio
LitchiCheng8 分钟前
DGX Spark 进行 Comfyui 文生图,5秒一张图
人工智能·python
FungLeo11 分钟前
Flutter/Android Release 包连不上网?AndroidManifest INTERNET 权限排查实录
android·flutter
j7~1 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
wWYy.2 小时前
Mysql:一行数据是怎么存储的?
android·数据库·mysql
维吉斯蔡9 小时前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
幻影123!9 小时前
从零训练一个会下五子棋的AI
python·深度学习·神经网络·强化学习·五子棋·alpha zero·mokugo
漏刻有时9 小时前
PHP GeoJSON转PNG地图渲染程序开发笔记、源码解读、问题复盘与整改方案
android·笔记·php
Python私教10 小时前
Django 接入 AI 大模型实战:从零做一个流式聊天网站
人工智能·python·django