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文件中加入:
    <supports-screens 
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:anyDensity="true"
        />
  这个就是用于适配大屏幕的(我做的是基于平板开发),但是为什么要额外加上这段代码呢?系统环境下编译就不需要,不明觉厉。明白的朋友望告知。这样一来程序就可以正常显示了。
  
    下面是我在网上找的参考资料,可以看一下,但里面的实例教程中都或多或少存在一些问题。

一、参考资料

导入部分:

编译部分:
    8、安卓工具箱

    




  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值