[原]Android 系统应用Setting开发总结

2024-05-06 15:48

本文主要是介绍[原]Android 系统应用Setting开发总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版本:2.0
  日期:2014.3.18
  版权:©  2013,2014 kince  转载注明出处
  更新:
            2014.3.20:1、修正导入jar包问题  
                                2、 更新运行不了解决办法    
                                                                                                                              
  最近由于工作关系需要对系统应用Setting进行二次开发,选择的工具是eclipse,所以也可以看得出来,不是在源码的环境下开发的。第一步自然是把Setting源码导入到eclipse,这样的话问题就出现了,会有很多错误。原因就是Setting属于系统应用,而且它用到了很多系统级的api,这些api是隐藏的、不对外开放的(相对于一般应用来说)。那如果想要使程序运行起来,就必须手动导入相应的jar包,  这些jar包是系统编译完成后生成的,而且jar包的顺序也要对应好,先后有序,类似这样就可以。而且版本不一样,所需要jar包也有所差异,因此基于哪个版本的系统开发,就选择相应版本的jar包。导入完后记得把project.properties版本号对上,然后clean一下就不会有错误了。另外如果你修改了AndroidManifest.xml文件,里面会有很多错误,没关系clean。关于如何打入jar,可以参考下面的 7、编译系统包Settings这篇文章。因为不管是Settings还是Launcher网上都是这种方法,可是后来在测试Settings应用的时候发现,有三个地方一点击程序就崩溃了。log报错是没有导入jar包,但之前确实已经导入了,编译的时候也没提醒找不到jar包。开始感觉很费解,找不到头绪。后来换了一种方法,把报错确实的jar包放入libs文件夹,再测试发现问题解决了,所以还是建议大家把jar包都放入libs里面。

                                                        
                                                                                                                                                   整体结构图

                                                                                                                                               Build Path示意图
,导完之后开始运行一下程序,会出现无法安装的情况。原因是和系统的冲突了,解决办法就是删除系统已经安装好的Setting,方法是使用adb shell命令,可以参考下面的:【安卓通用】android adb shell 命令大全。如果删除完还是说更新不完全,重启即可。但是运行完之后会发现,程序分辨率变低了,图片、文字都放大模糊了。具体原因不清楚,但是可以确定的是如果在系统环境下编译是不会有这个问题(eclipse有)。最后找到一个解决办法,就是在AndroidManifest.xml文件中加入:
<span style="padding: 0px; margin: 0px; font-size: 14px;">    <supports-screens android:largeScreens="true"android:xlargeScreens="true"android:anyDensity="true"/></span>
  这个就是用于适配大屏幕的(我做的是基于平板开发),但是为什么要额外加上这段代码呢?系统环境下编译就不需要,不明觉厉。明白的朋友望告知。这样一来程序就可以正常显示了。
  
    下面是我在网上找的参考资料,可以看一下,但里面的实例教程中都或多或少存在一些问题。

一、参考资料

导入部分:
    1、将packages/apps/下的app导入eclipse
    2、在Eclipse+ADT中开发Android系统的内置应用
    3、[2013.9.8网络首发]导入Android4.2源码里的Gallery2和Camera模块至Eclipse全过程
    4、Android SystemUI (导入到Eclipse,可以正常运行)
    5、把系统的Settings拉到另外目录下,并导入eclipse中编译运行
    6、Windows下Eclipse Android源码Settings模块调试
    7、编译系统包Settings
    8、Android Settings 导入eclipse(含有调试好的源代码)
    9、将packages/apps/下的app导入eclipse
   10、使用内部(com.android.internal)和隐藏(@hide)API[第2部分,定制android.jar]
   11、Android.mk简单分析

编译部分:
    1、Android平台上如何让应用程序获得系统权限以及如何使用platform密钥给apk签名
    2、Android应用程序永久获取root权限方法
    3、Android通过源码编译apk获得系统权限
    4、apk获得Android系统权限的方法
    5、Android如何通过shared_user_id获取系统权限
    6、android实现权限管理和签名静默卸载
    7、错误 -- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
    8、安卓工具箱
    9、安卓签名工具SignApk.jar使用教程
   10、eclipse源码编译的apk开发,使用系统签名机制
   11、WINDOWS下ECLIPSE ANDROID源码SETTINGS模块调试
   13、Android签名总结
   14、【安卓通用】android adb shell 命令大全
   15、Android中的lcd_density设置
   16、Eclipse中跟踪调试Android源代码

这篇关于[原]Android 系统应用Setting开发总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964751

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi