使用AndroidFrameworks开发和应用隐藏类 or Android使用自定义framework开发与应用
Android眼下代表系统的开源手机操作系统已经更新到4.0.3版本号。由于其开源特性。使得操作系统本身所具有的最大的灵活性,但同时也引起的版本号的多样性,市场上出现的是手机厂商或ROM。可是怎样开发Android系统framework层那。我们知道使用Eclipse+ADT就能够进行Android 应用的开发。使用手机或模拟器进行对应效果的调试。
这是标准的应用开发流程,但在为定制ROM开发定制APK时,常常面对的是使用改动过的Framework。最常见的情况是将原来在Framework中@hide的接口开发。或者增加自己定义的新接口。我们知道使用这样的接口在Eclipse中会直接报错,根本不能进行编译更不用说进行代码的跟踪与调试了。事实上这里能够使用对应的JAVA文件编译得来的.class放入Eclips lib引用库并提高调用优先级。就能够跨越这道屏障,进行应用的开发。顺序例如以下:
在project的Build Path 中,AddExternal Class Folder中选择对应的.class文件夹路径,别忘了增加后,再在Order中将调用的class放在系统framework.jar之前,这样就能够完毕相关的编译工作。并能够在手机上正常执行。但有一点须要注意,要想使用定制的Framework相关接口。须要手机系统支持。
也就是对应的手机已经带有对应的ROM才干正常调用这部分接口。
而相关的.class文件就是在进行系统源代码编译时对应的包(out\target\common\obj\)下中间代码。须要依据接口源代码位置,在对应的文件夹查找。
假设不想这么麻烦,能够直接替换整个framework代码!
,文件夹为out\target\common\obj\JAVA_LIBRARIES\framework_intermediates,在以下有classes-full-debug.jar,这个就是未经压缩的jar包了,里面有全部的fraemwork源代码生成的.class文件了。
1.在你须要用到的project中:
点击Build path。点击Add Libraries:
选择User Library,点击Next:
点击User Libraries:
点击New:
在New User Library对话框中输入一个名字。能够自己随意命名,这里取名Myframework。勾选上:system library。点击OK,这样就不必去寻找对应的.class文件,直接使用新framework接口的方法了。
1.选中Android应用的project-右键-Properties-Libraries-Add Library;弹出“Add
Library”对话框。选择“User Libraries...”。(图1)
图1
2.弹出“User Libraries”对话框;点击“New”。弹出“New User Library”对话框:新建Library的名称(“FrameworksJar4.2.2”,library的名字可自己定义),并选中“system library(add to the boot class path)”,点击OK(图2)
图2
3.(图3)在“User Libraries”对话框,能够看到新建的“FrameworksJar4.2.2”自己定义的库名称。点击“Add External JARs...”(选择 classes-full-debug.jar,前提是已编译Android源代码,获取了该jar文件);
图3
4.图4中能够看到,自己定义的库“FrameworksJar4.2.2”已经与classes-full-debug.jar相关联。
点击图4的“OK”。图5的“Finish”;
图4
图5
5.能够看到Java Build Path下的“Libraries”标签页,多了刚才新建的“FrameworksJar4.2.2”库(图6)。
图6
6.须要在Java
Build Path下的“Order and Export”标签页下,top “FrameworkJar4.2.2”。否则,project可能会编译只是。
7.在Android应用的project中也能够看到(图7),该“FrameworksJar4.2.2”库能够被project使用。
图7
注意:
1.假设直接在Java
Build Path下的“Libraries”标签页。选择“Add External Jar...”,并加入“classes-full-debug.jar”。调试project什么时候,可能会出现卡住,弹出
“Java Heap Space”错误。
使用AndroidFrameworks开发和应用隐藏类 or Android使用自定义framework开发与应用的更多相关文章
- Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字
Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...
- Java 15 新特性:隐藏类
什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类.引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们.可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! ...
- 为什么那么多人想开发一元夺宝类app?
别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...
- Android开发调试日志工具类[支持保存到SD卡]
直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- Android游戏开发之旅 View类详解
Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...
- 基于JavaMail开发邮件发送器工具类
基于JavaMail开发邮件发送器工具类 在开发当中肯定会碰到利用Java调用邮件服务器的服务发送邮件的情况,比如账号激活.找回密码等功能.本人之前也碰到多次这样需求,为此特意将功能封装成一个简单易用 ...
- 请解释ASP.NET 中的web 页面与其隐藏类之间的关系?
一个ASP.NET 页面一般都对应一个隐藏类,一般都在ASP.NET 页面的声明中指定了隐藏类例如一个页面 Tst1.aspx 的页面声明如下 <%@ Page language="c ...
- 使用android 隐藏类和方法
在应用程序中添加与android.jar包相同的包目录,添加要隐藏类和方法.保证能编译通过就可以.
随机推荐
- 基于visual Studio2013解决面试题之0602全排列
题目
- webview加载网页加载不出来
1.webView.loadUrl(picTargetUrl); 写在最前面. 1.在无线城市迷你版的项目,用webview去loadUrl的时候出现加载的现象. url 地址是 http://go. ...
- Android Studio显示行数
Android Studio在打开的文件左側单击鼠标右键,也能像Eclipse一样设置显示代码行数,如图1.可是这边跟Eclipse有一个非常大的差别,Eclipse设置后,其余的相应文件也跟着生效, ...
- hadoop拷贝文件时 org.apache.hadoop.ipc.RemoteException异常的解决
1.系统或hdfs是否有空间 2.datanode数是否正常 3.是否在safemode 4.防火墙关闭 5.配置方面 6.把NameNode的tmp文件清空,然后重新格式化NameNode
- Codeforces Round #216 (Div. 2) D. Valera and Fools
题目链接:http://codeforces.com/contest/369/problem/D 注意题意:所有fools都向编号最小的fool开枪:但每个fool都不会笨到想自己开枪,所以编号最小的 ...
- Android开发之查看应用包名package和入口activity名称的方法
使用android自动化测试工具monkeyrunner启动应用时,需要填写被测程序的包名和启动的Activity,以下有两种查看应用包名package和入口activity名称的方法: 方法一:使用 ...
- SuperSocket应用之FTP源码解析
一 简述 命令行协议是一种使用比较多的协议,其优点在于使用简单易于扩展性,同时也利于解析和使用.FTP,POP,SMTP等均采用命令行协议,其中FTP在早起互联网时期成为网络资源共享的主要方式,可见F ...
- linux命令行模式下实现代理上网(转)
有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...
- 让工程师爱上CMMI,实现管理于无形 --- 中标软件CMMI L5之路 (1/2)
操作系统市场被微软等国外的IT厂商垄断的大环境下,中标软件作为市场夹缝中发展起来的民族企业,致力于成为中国操作系统旗舰企业.系列核心产品已经在政府.金融.教育.财税.公安.审计.交通.医疗.制造等行业 ...
- VS2005 MFC 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal err ...