求助!系统应用源码修改与编译

Yunc2 2017-11-30 12:43:42
因为工作需要修改安卓拨号的界面,以前一直做应用没有接触过源码方面的东西,所以很多不懂

对于开发的流程不太懂,个人理解的是,在linux编译系统源码,然后生成android.ipr并导入android studio,修改代码并且模块编译生成apk,最后push到system/app 下面

希望有做过类似的大神分享一些经验
...全文
195 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨焰 2017-12-07
  • 打赏
  • 举报
回复
建议你在源码里找一个projcet,最好是相似的,然后参考它的makefile文件,放到你的工程里面,可能只需要修改一下名称就行了!当然这个方法不是根本的解决办法,你需要了解android makefile
Yunc2 2017-12-06
  • 打赏
  • 举报
回复
引用 1 楼 f839903061 的回复:
源码里面的projcet的格式和Eclipse的比较相似或者更简洁一些,但是需要你添加makefile文件,执行编译命令,你可以直接编译出apk文件,文件是会根据设置makefile里面的设定,会把apk文件放到system/app
大概明白了,再问一个问题行么,就是mk文件里面加了LOCAL_JAVA_LIBRARIES ,但是编译后的apk里面根本没有对应的类,运行提示一堆找不到类,麻烦看一下是哪里的问题

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

incallui_dir := ../InCallUI
contacts_common_dir := ../ContactsCommon
phone_common_dir := ../PhoneCommon
contacts_ext_dir := ../ContactsCommon/ext
# M: add mtk-ex
chips_dir := ../../../frameworks/ex/chips

src_dirs := src \
    $(incallui_dir)/src \
    $(contacts_common_dir)/src \
    $(phone_common_dir)/src \
    $(contacts_ext_dir)/src

res_dirs := res \
    res_ext \
    $(incallui_dir)/res \
    $(incallui_dir)/res_ext \
    $(contacts_common_dir)/res \
    $(contacts_common_dir)/res_ext \
    $(phone_common_dir)/res \
    $(chips_dir)/res

LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))

LOCAL_AAPT_FLAGS := \
    --auto-add-overlay \
    --extra-packages com.android.incallui \
    --extra-packages com.android.contacts.common \
    --extra-packages com.android.phone.common
# M: add mtk-ex
LOCAL_AAPT_FLAGS += --extra-packages com.android.mtkex.chips

# M: add ims-common for WFC feature
LOCAL_JAVA_LIBRARIES += telephony-common
LOCAL_JAVA_LIBRARIES += mediatek-common 
LOCAL_JAVA_LIBRARIES += mediatek-framework
LOCAL_JAVA_LIBRARIES += voip-common 
LOCAL_JAVA_LIBRARIES += ims-common

LOCAL_STATIC_JAVA_LIBRARIES := \
    com.android.services.telephony.common \
    com.android.vcard \
    android-common \
    guava \
    android-support-v13 \
    android-support-v4 \
    android-ex-variablespeed \
    libphonenumber \
    libgeocoding \
    com.mediatek.dialer.ext \
    com.mediatek.incallui.ext
# M: add mtk-ex
LOCAL_STATIC_JAVA_LIBRARIES += android-common-chips

LOCAL_REQUIRED_MODULES := libvariablespeed

LOCAL_PACKAGE_NAME := Dialer
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

LOCAL_PROGUARD_FLAG_FILES := proguard.flags $(incallui_dir)/proguard.flags

# Uncomment the following line to build against the current SDK
# This is required for building an unbundled app.
# LOCAL_SDK_VERSION := current

include $(BUILD_PACKAGE)

# Use the following include to make our test apk.
#include $(call all-makefiles-under,$(LOCAL_PATH))

雨焰 2017-12-04
  • 打赏
  • 举报
回复
源码里面的projcet的格式和Eclipse的比较相似或者更简洁一些,但是需要你添加makefile文件,执行编译命令,你可以直接编译出apk文件,文件是会根据设置makefile里面的设定,会把apk文件放到system/app

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧