Android记账本源码(没有android内核的系统源代码应该怎么利用)

2023-11-24 19:00:08 :28

android记账本源码(没有android内核的系统源代码应该怎么利用)

大家好,android记账本源码相信很多的网友都不是很明白,包括没有android内核的系统源代码应该怎么利用也是一样,不过没有关系,接下来就来为大家分享关于android记账本源码和没有android内核的系统源代码应该怎么利用的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

没有android内核的系统源代码应该怎么利用

1. 获取源代码在cd ~/myandroid/kernel中执行以下命令git clone git://android.git.kernel.org/kernel/common.git 这需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。 然后进入到common目录,然后用下面的命令来取得goldfish分支:git checkout origin/android-goldfish-2.6.27 -b goldfish这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。可以通过git branch来列出本地的所有分支。 2. 在Host OS上准备编译环境 尽管很多人安装完Ubuntu后第一件事情就是装上build-essential,不过我在这里还是要提醒一下大家,另外做menuconfig的时候ncurses-devel库也是必须的。运行以下命令,一次搞定:sudo apt-get install build-essential ncurses-dev3. 准备交叉编译工具链 Android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。如果你拿了完整的Android platform 的代码树,它就会在prebuilt目录下。如果没有拿完整的代码树也没有关系,只要用Git clone一个或者到从GitWeb下载一个prebuilt项目 ,如果是从GitWeb下载的话记得解压缩就行。 4. 设定环境变量把prebuilt中的arm-eabi编译器加入$PATH$export PATH=$PATH:/myandroid/androidsrc/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin 设定目标arch为arm$export ARCH=arm打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器CROSS_COMPILE ?= arm-eabi-把LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,/$(call ld-option, -Wl$(comma)–build-id,)) 这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:LDFLAGS_BUILD_ID = 下面的这段解释来自陈罡的blog把它注释掉的原因是目前android的内核还不支持这个选项。–build-id选项,主要是用于在生成的elf可执行文件中加入一个内置的id,这样在core dump,或者debuginfo的时候就可以很快定位这个模块是哪次build的时候弄出来的。这样就可以避免,每次都把整个文件做一遍效验,然后才能得到该文件的是由哪次build产生的。对于内核开发者来说,这是很不错的想法,可以节约定位模块版本和其影响的时间。目前,该功能还出于early stage的状态,未来的android或许会支持,但至少目前的版本是不支持的。对这个–build-id选项感兴趣的朋友,可以访问下面的网址,它的作者已经解释得非常明白了:***隐藏网址***5、从SDK中获得内核配置文件 大家都知道,内核编译中有一步make menuconfig,用于配置kernel。这里我们可以先获取官方的配置,如果必要的话再作改动。先启动模拟器 emulator -avd xxxx ,然后通过adb pull命令(该命令用于从设备上复制文件到本地)即可完成。$adb pull /proc/config.gz ~/ 现在我们用gunzip把config.gz解开,把得到的config文件移动到kernel source所在的目录,然后重命名为.config即可。$ gunzip config.gz$ mv config ~/sources/goldfish-kernel/.config 6、开始编译 因为我们之前已经把SDK中.config复制到了kernel目录下,如果需要修改配置,可以使用make menuconfig 修改并保存配置,如果没有特殊需要的话就可以直接用make 命令来编译内核了7、测试生成的zImage 编译内核的过程应该很顺利,因为默认的配置对内核作了大幅的精简,大约5~6分钟就可以编译完成了,会在最终会在arch/arm/boot目录下面生成一个zImage,这个就是我们所要的运行在模拟器上的内核映像了。下面我们就在模拟器中测试一下我们所生成的zImage。emulator avd xxx -kernel ./zImage 其中xxx是AVD名称 ,如果想输出kernel log,请加上-show-kernel参数。关于为实际设备编译kernel 如果要为一个实际的设备比如说G1重新编译内核映像,步骤和上述为一个运行在模拟器上的内核映像步骤基本一致,只是所需要的源代码应当来自主线而不是goldfish分支。另外,编译完成以后载入映像的方式也不同,需要通过USB将映像烧入nand flash。

android 源码 怎么只编译 systemui

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:-- Makefile-- bionic (bionic C库)-- bootable (启动引导相关代码)-- build (存放系统编译规则及generic等基础开发包配置)-- cts (Android兼容性测试套件标准)-- dalvik (dalvik JAVA虚拟机)-- development (应用程序开发相关)-- external (android使用的一些开源的模组)-- frameworks (核心框架——java及C++语言)-- hardware (主要保护硬解适配层HAL代码)-- libcore -- ndk -- device -- out (编译完成后的代码输出与此目录)-- packages (应用程序包)-- prebuilt (x86和arm架构下预编译的一些资源)-- sdk (sdk及模拟器)-- system (文件系统库、应用及组件——C语言)`-- vendor (厂商定制代码)bionic 目录-- libc (C库) -- arch-arm (ARM架构,包含系统调用汇编实现) -- arch-x86 (x86架构,包含系统调用汇编实现) -- bionic (由C实现的功能,架构无关) -- docs (文档) -- include (头文件) -- inet -- kernel (Linux内核中的一些头文件) -- netbsd (?netbsd系统相关,具体作用不明) -- private (?一些私有的头文件) -- stdio (stdio实现) -- stdlib (stdlib实现) -- string (string函数实现) -- tools (几个工具) -- tzcode (时区相关代码) -- unistd (unistd实现) `-- zoneinfo (时区信息)-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)-- libm (libm数学库的实现,) -- alpha (apaha架构) -- amd64 (amd64架构) -- arm (arm架构) -- bsdsrc (?bsd的源码) -- i386 (i386架构) -- i387 (i387架构?) -- ia64 (ia64架构) -- include (头文件) -- man (数学函数,后缀名为.3,一些为freeBSD的库文件) -- powerpc (powerpc架构) -- sparc64 (sparc64架构) `-- src (源代码)-- libstdc++ (libstdc++ C++实现库) -- include (头文件) `-- src (源码)-- libthread_db (多线程程序的调试器库) `-- include (头文件)`-- linker (动态链接器) `-- arch (支持arm和x86两种架构)bootable 目录-- bootloader (适合各种bootloader的通用代码) `-- legacy (估计不能直接使用,可以参考) -- arch_armv6 (V6架构,几个简单的汇编文件) -- arch_msm7k (高通7k处理器架构的几个基本驱动) -- include (通用头文件和高通7k架构头文件) -- libboot (启动库,都写得很简单) -- libc (一些常用的c函数) -- nandwrite (nandwirte函数实现) `-- usbloader (usbloader实现)-- diskinstaller (android镜像打包器,x86可生产iso)`-- recovery (系统恢复相关) -- edify (升级脚本使用的edify脚本语言) -- etc (init.rc恢复脚本) -- minui (一个简单的UI) -- minzip (一个简单的压缩工具) -- mtdutils (mtd工具) -- res (资源) `-- images (一些图片) -- tools (工具) `-- ota (OTA Over The Air Updates升级工具) `-- updater (升级器)build目录-- core (核心编译规则)-- history (历史记录)-- libs `-- host (主机端库,有android “cp”功能替换)-- target (目标机编译对象) -- board (开发平台) -- emulator (模拟器) -- generic (通用) -- idea6410 (自己添加的) `-- sim (最简单) `-- product (开发平台对应的编译规则) `-- security (密钥相关)`-- tools (编译中主机使用的工具及脚本) -- acp (Android "acp" Command) -- apicheck (api检查工具) -- applypatch (补丁工具) -- apriori (预链接工具) -- atree (tree工具) -- bin2asm (bin转换为asm工具) -- check_prereq (检查编译时间戳工具) -- dexpreopt (模拟器相关工具,具体功能不明) -- droiddoc (?作用不明,java语言,网上有人说和JDK5有关) -- fs_config (This program takes a list of files and directories) -- fs_get_stats (获取文件系统状态) -- iself (判断是否ELF格式) -- isprelinked (判断是否prelinked) -- kcm (按键相关) -- lsd (List symbol dependencies) -- releasetools (生成镜像的工具及脚本) -- rgb2565 (rgb转换为565) -- signapk (apk签名工具) -- soslim (strip工具)`-- zipalign (zip archive alignment tool)dalvik目录 dalvik虚拟机.-- dalvikvm (main.c的目录)-- dexdump (dex反汇编)-- dexlist (List all methods in all concrete classes in a DEX file.)-- dexopt (预验证与优化)-- docs (文档)-- dvz (和zygote相关的一个命令)-- dx (dx工具,将多个java转换为dex)-- hit (?java语言写成)-- libcore (核心库)-- libcore-disabled (?禁用的库)-- libdex (dex的库)-- libnativehelper (Support functions for Android’s class libraries)-- tests (测试代码)-- tools (工具)`-- vm (虚拟机实现)development 目录 (开发者需要的一些例程及工具)-- apps (一些核心应用程序) -- BluetoothDebug (蓝牙调试程序) -- CustomLocale (自定义区域设置) -- Development (开发) -- Fallback (和语言相关的一个程序) -- FontLab (字库) -- GestureBuilder (手势动作) -- NinePatchLab (?) -- OBJViewer (OBJ查看器) -- SdkSetup (SDK安装器) -- SpareParts (高级设置) -- Term (远程登录) `-- launchperf (?)-- build (编译脚本模板)-- cmds (有个monkey工具)-- data (配置数据)-- docs (文档)-- host (主机端USB驱动等)-- ide (集成开发环境)-- ndk (本地开发套件——c语言开发套件)-- pdk (Plug Development Kit)-- samples (演示程序) -- AliasActivity () -- ApiDemos (API演示程序) -- BluetoothChat (蓝牙聊天) -- BrowserPlugin (浏览器插件) -- BusinessCard (商业卡) -- Compass (指南针) -- ContactManager (联系人管理器) -- CubeLiveWall** (动态壁纸的一个简单例程) -- FixedGridLayout (像是布局) -- GlobalTime (全球时间) -- HelloActivity (Hello) -- Home (Home) -- JetBoy (jetBoy游戏) -- LunarLander (貌似又是一个游戏) -- MailSync (邮件同步) -- MultiResolution (多分辨率) -- MySampleRss (RSS) -- NotePad (记事本) -- RSSReader (RSS阅读器) -- SearchableDictionary (目录搜索) -- **JNI (JNI例程) -- SkeletonApp (空壳APP) -- Snake (snake程序) -- SoftKeyboard (软键盘) -- Wiktionary (?维基) `-- Wiktionary**(?维基例程)-- scripts (脚本)-- sdk (sdk配置)-- simulator (?模拟器)-- testrunner (?测试用)`-- tools (一些工具)

怎么用git查看本地android源码改动

首先你拷贝的源码有用git管理版本,最简单的查看方法是看看那个目录下有没有 .git 目录,注意这是个隐藏目录,需要显示隐藏的文件才能看到然后你电脑上需要有git环境然后就可以进入你想看的有.git的目录,如果别人修改的android源码没有用git提交,直接在这个目录下执行 git status命令查看修改了哪些文件,git diff是查看所有修改文件的具体修改内容,或者git diff path 查看单独某个文件的修改(path是一个文件的路径,比如 aa/bb.txt 就是查看aa路径下的bb.txt文件修改的具体内容)如果别人修改的android源码已经提交了,可以使用git log查看以前的提交信息,每次提交会有一个id,git log之后出现的类似commit cbbe72c134feb5146101a86bda88e36fd93f7a5b这样的后面的cbbe72c134feb5146101a86bda88e36fd93f7a5b就是那次提交的id,git diff cbbe72c134feb5146101a86bda88e36fd93f7a5b就可以看那次提交的修改了

Android源码解析Window系列第(一)篇---Window的基本认识和Activity的加载流程

您可能听说过View ,ViewManager,Window,PhoneWindow,WindowManager,WindowManagerService,可是你知道这几个类是什么关系,干嘛用的。概括的来说,View是放在Window中的,Window是一个抽象类,它的具体实现是PhoneWindow,PhoneWindow还有个内部类DecorView,WindowManager是一个interface,继承自ViewManager,它是外界访问Window的入口,,提供了add/remove/updata的方法操作View,WindowManager与WindowManagerSerice是个跨进程的过程,WindowManagerService的职责是对系统中的所有窗口进行管理。如果您不太清楚,建议往下看,否则就不要看了。

Android系统的Window有很多种,大体上来说,Framework定义了三种窗口类型;

这就是Framework定义了三种窗口类型,这三种类型定义在WindowManager的内部类LayoutParams中,WindowManager讲这三种类型 进行了细化,把每一种类型都用一个int常量来表示,这些常量代表窗口所在的层,WindowManagerService在进行窗口叠加的时候,会按照常量的大小分配不同的层,常量值越大,代表位置越靠上面, 所以我们可以猜想一下,应用程序Window的层值常量要小于子Window的层值常量,子Window的层值常量要小于系统Window的层值常量。 Window的层级关系如下所示。

上面说了Window分为三种,用Window的type区分,在搞清楚Window的创建之前,我们需要知道怎么去描述一个Window,我们就把Window当做一个实体类,给我的感觉,它必须要下面几个字段。

实际上WindowManager.LayoutParams对Window有很详细的定义。

提取几个重要的参数

Window是一个是一个抽象的概念,千万不要认为我们所看到的就是Window,我们平时所看到的是视图,每一个Window都对应着一个View,View和Window通过ViewRootImpl来建立联系。有了View,Window的存在意义在哪里呢,因为View不能单独存在,它必须依附着Window,所以有视图的地方就有Window,比如Activity,一个Dialog,一个PopWindow,一个菜单,一个Toast等等。

通过上面我们知道视图和Window的关系,那么有一个问题,是先有视图,还是先有Window。这个答案只有在源码中找了。应用程序的入口类是ActivityThread,在ActivityThread中有performLaunchActivity来启动Activity,这个performLaunchActivity方法内部会创建一个Activity。

如果activity不为null,就会调用attach,在attach方法中通过PolicyManager创建了Window对象,并且给Window设置了回调接口。

PolicyManager的实现类是Policy

这样Window就创建出来了, 所以先有Window,后有视图,视图依赖Window存在 ,再说一说视图(Activity)为Window设置的回调接口。

Activity实现了这个回调接口,当Window的状态发生变化的时候,就会回调Activity中实现的这些接口,有些回调接口我们还是熟悉的,dispatchTouchEvent,onAttachedToWindow,onDetachedFromWindow等。

下面分析view是如何附属到window上的,通过上面可以看到,在attach之后就要执行callActivityOnCreate,在onCreate中我们会调用setContentView方法。

getWindow获取了Window对象,Window的具体实现类是PhoneWindow,所以要看PhoneWindow的setContentView方法。

这里涉及到一个mContentParent变量,他是一个DecorView的一部分,DecorView是PhoneWindow的一个内部类,我先介绍一下关于DecorView的知识。

DecorView是Activity的顶级VIew,DecorView继承自FrameLayout,在DecorView中有上下两个部分,上面是标题栏,下面是内容栏,我们通过PhoneWindow的setContentView所设置的布局文件是加到内容栏(mContentParent)里面的,View层的事件都是先经过DecorView在传递给我们的View的。

OK在回到setContentView的源码分析,我们可以得到Activity的Window创建需要三步。

- 1、 如果没有DecorView,在installDecor中创建DecorView。

- 2、将View添加到decorview中的mContentParent中。

- 3、回调Activity的onContentChanged接口。

先看看第一步,installDecor的源码

installDecor中调用了generateDecor,继续看

直接给new一个DecorView,有了DecorView之后,就可以加载具体的布局文件到DecorView中了,具体的布局文件和系统和主题有关系。

在看第二步,将View添加到decorview中的mContentParent中。

直接将Activity视图加到DecorView的mContentParent中,最后一步,回调Activity的onContentChanged接口。在Activity中寻找onContentChanged方法,它是个空实现,我们可以在子Activity中处理。

到此DecorView被创建完毕,我们一开始从Thread中的handleLaunchActivity方法开始分析,首先加载Activity的字节码文件,利用反射的方式创建一个Activity对象,调用Activity对象的attach方法,在attach方法中,创建系统需要的Window并为设置回调,这个回调定义在Window之中,由Activity实现,当Window的状态发生变化的时候,就会回调Activity实现的这些回调方法。调用attach方法之后,Window被创建完成,这时候需要关联我们的视图,在handleLaunchActivity中的attach执行之后就要执行handleLaunchActivity中的callActivityOnCreate,在onCreate中我们会调用setContentView方法。通过setContentView,创建了Activity的顶级View---DecorView,DecorView的内容栏(mContentParent)用来显示我们的布局。 这个是我们上面分析得到了一个大致流程,走到这里,这只是添加的过程,还要有一个显示的过程,显示的过程就要调用handleLaunchActivity中的handleResumeActivity方法了。最后会调用makeVisible方法。

这里面首先拿到WindowManager对象,用tWindowManager 的父接口ViewManager接收,ViewManager可以 最后调用 mDecor.setVisibility(View.VISIBLE)设置mDecor可见。到此,我们终于明白一个Activity是怎么显示在我们的面前了。 参考链接:***隐藏网址***

不知谁有基于android的错题本系统源码!

Application端和Services端都看和改了不少.如果只是想看看一些常用类的实现, 在Android包管理器里把源码下载下来, 随便一个IDE配好Source Code的path看就行. 但如果想深入的了解Android系统, 那么可以看下我的一些简单的总结. 知识JavaJava是AOSP的主要语言之一. 没得说, 必需熟练掌握.熟练的Android App开发LinuxAndroid基于Linux的, 并且AOSP的推荐编译环境是Ubuntu 12.04. 所以熟练的使用并了解Linux这个系统是必不可少的. 如果你想了解偏底层的代码, 那么必需了解基本的Linux环境下的程序开发. 如果再深入到驱动层, 那么Kernel相关的知识也要具备.MakeAOSP使用Make系统进行编译. 了解基本的Makefile编写会让你更清晰了解AOSP这个庞大的项目是如何构建起来的.GitAOSP使用git+repo进行源码管理. 这应该是程序员必备技能吧.C++Android系统的一些性能敏感模块及第三方库是用C++实现的, 比如: Input系统, Chromium项目(WebView的底层实现).

android 记账本app功能为何无法实现 代码见补充

  1. 你要看设置一个断点看看Exception exp 是什么。或者打个Log看一下

  2. 下一步根据问题来Google(当然你有思路就不用Google了)

  3. 我猜是你没有写权限到Mainfest里面。

如何调试跟踪Android Framework源代码

本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。

一、准备工作

确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Android SDK / ADT

即,机器上已经安装了Eclipse下Android应用开发所需的环境。如果还未配置,移步《搭建Windows下Android应用开发环境——Eclipse/Android/ADT》。

另外,为了跟踪调试Android源码,你还需要有Android源码,并有源码的编译环境,可以是:

  • 虚拟机环境 虚拟机中安装Linux,Linux下编译Android源码。此环境下,如果要在宿主机的Eclipse中调试,还需要把Android的源码路径共享出来,宿主机可访问到;

  • 有单独的可编译Android的网络环境 在你的客户端的机器上访问服务器共享出来的Android的源码路径;

  • Linux环境下直接通过Eclipse跟踪调试本机上的Android源码。

  • 注意:不管哪种工作方式,Android源码要都是已经编译过的,且编译时采用的是Eng模式(vs User mode)。编译Android Platform和Kernel的过程,可参考《Ubuntu10.10下编译Android2.2平台》及《Ubuntu10.10下编译Android2.2内核》。

    二、基本设置

    准备工作完毕之后,现在做一些基本的设置。

    ***隐藏网址***

    2. 修改Eclipse的设置

    修改eclipse.ini文件,更改下列内容:

     view plaincopy

  • -Xms40m  

  • -Xmx384m  

  • 改为:

     view plaincopy

  • -Xms128m  

  • -Xmx512m  

  • 这里增大最小Java堆大小到128MB,增大最大Java堆大小到512MB。

    三、Eclipse中创建工程

    1. File 》 New 》 Java Project

    2. 输入项目名

    3. 取消Use default location,并在Location中输入或选择Android源码路径《Android_ROOT》

    4. 选择Next 》 Finish。会有一个漫长的等待过程

    新建的工程可能会有错误,根据错误提示,加入或者删除项目中配置的程序包。

    四、调试环境配置

    1. 右击刚刚在#3中创建的项目;

    2. 选择:Debug As 》 Debug Configurations…;

    3. 右击“Remote Java Application”,选择New。或者直接双击“Remote Java Application”创建一个新的Remote Application。

    4. 填入Name;Project选择刚刚创建的项目Android2.3.7;端口填写8700(不一定是8700,到DDMS Perspective下的Device View中看所需的端口号)。

    5. Apply保存,然后退出。

    五、调试

    可以通过模拟器或者真机调试。

    无论模拟器还是真机,都要:

  • 先启动机器(模拟器启动,或真机打开,并通过USB与PC正常连接),也就是要在DDMS Perspective的Devices视图中看到有机器连接;

  • 确保运行中的代码与你要调试的代码是一样的。

  • 假如,我们想要跟踪锁屏解锁的调用情况。

    我们知道解锁的实现是在LockScreen.java的onGrabbedStateChange()函数,运行在system_process进程中。

    那么,

    1.        在onGrabbedStateChange()中要调试的地方设置断点;

    2.        在Device View中,选中system_process,并点击小爬虫图标;

    3.        用Section#4创建的Debug配置,Debug;

    4.        在模拟器或真机上,执行到解锁操作时,代码就会停在断点处;

    这样你就可以,

  • 把鼠标放在某个变量上,看它的值。也可以Eclipse中的各种调试手段调试你的代码。

  • 通过Step Into / Step Over / Resume / Suspend / Terminate等在Debug View中控制程序的执行。

  • 总结

    通过本文可以:

  • 本文讲解是基于Windows环境的,但是不仅适用于Windows环境,同样适用于Mac OS和Linux系统,只是一些路径和使用方式有差别;

  • 可以跟踪/调试所有Android中Java的源码(无论Framework的代码,还是App中的代码),并不能Debug Framework中的c/c++ code;

  • 为了使整个项目在Eclipse中都能编译过,.classpath中也包含了out/里编译生成的内容,所以必须保证Android源码是已经编译过的。

  • 跟踪/调试的前提是要在所要调试代码处设置断点,并知道该处代码执行在哪个进程中。

  • ===================================================================================================================
  • 如果导入的工程有错误,可以参照下面方法操作。

    ===================================================================================================================

    我们导入一个android自带应用的工程时,往往有很多错误。以自带的 AlarmClock 为例,导入eclipse后,往往出现很多错误,如下图所示:

     

    例如,上图中的Intent.ACTION_ALARM_CHANGED 无法访问,下面我们就找到源代码看看原因何在?

    根据java 编程规范,我们知道这个api (静态变量)被隐藏掉了,所以在sdk中无法使用。在知道了原因之后,我们有几种解决方案(建议使用方法二):

    1. 自己将源代码中的@hide去掉,然后编译一个sdk来替换默认的sdk。在linux上使用  make PRODUCT-sdk-sdk 命令,编译一个新的sdk出来,注意编译后其实我们不需要整个sdk,只需要android.jar这个文件替换掉sdk里的android.jar,例如:笔者的sdk里的jar对应的目录为:F:/Program Files/Android/android-sdk-windows/platforms/android-8/android.jar具体编译sdk的方法是,在linux编译环境下用命令 make PRODUCT-sdk-sdk ,成功后,会有如下提示: Package SDK: out/host/linux-x86/sdk/android-sdk_eng.stevewang_linux-x86.zip我们进入到 linux编译环境的 out/host/linux-x86/sdk/android-sdk_eng.stevewang_linux-x86/platforms/android-2.2/目录下可以看到android.jar 文件。使用此文件替换   F:/Program Files/Android/android-sdk-windows/platforms/android-8/android.jar 即可。替换前记得备份此方法较为麻烦,建议使用方法二

    2. 添加framework 编译出来的class.jar文件到 eclipse的build path其实在编译android的时候,我们将framework 编译到一个临时的jar包中了,这个jar包的路径一般为: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar我们只需要在linux上android源代码目录下使用make 命令即可生成此文件。由于这个jar文件中的api 还没有重新打包,里面被@hide掉的api并没有被去掉。所以我们依然能够引用里面被@hide的api 。而sdk 中的android.jar文件时重新打包生成的,其里标记有@hide的api已经被去掉了。所以我们把 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar 拷贝到本地pc上。然后在工程中添加此jar包。具体方法: 1 . 拷贝linux编译生成的  out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar到本机PC。2,在eclipse的Android项目中,选择项目属性-》Java Build Path-》Libraries-》Add Library-》User Library-》Next-》 UserLibraries进入到User Libraries管理界面,点击New新建一个User Library,比如android_framework,点击Add Jars把Jar包加入到建立的User Library中,最后点击OK。3.选择项目属性-》Java Build Path-》Order and Export,把所建立的User Libraries移到Android SDK的上面。

    如下图:

    之后我们的工程错误消失了:

OK,关于android记账本源码和没有android内核的系统源代码应该怎么利用的内容到此结束了,希望对大家有所帮助。

android记账本源码(没有android内核的系统源代码应该怎么利用)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.