解决eclipse无法识别某些API的问题
解决 eclipse 无法识别某些
API 的问题
#移动开发 #Android
1. 问题分析
有些与系统关系紧密的应用程序,使用 eclipse 开发的时候,会出现”cannot be
resolved to a type”
之类的提示,以至于无法正常编译调试。其原因 eclipse 中所能识别的
android api 只是本地 Android SDK 目录中
android.jar 中打包的内容,如 android-
sdk_eng.root_linux-x86/platforms/android-1.6/android.jar,可使用增加
android.jar
中缺少的 api 的方法解决此问题。
2. 解决方法
首先要下载 SDK 相应的 android 源码,因为只有在源码中才有这些 api
的实现
然后按以下方法把你所需要的 api 打进 android.jar 之中
_ $ mkdir android-full
$ cd android-full
$ jar -xvf
$ANDROID_SRC_DIR/out/target/common/obj/JAVA_LIB ...
androidflash分区(nandflash)
android flash 分区 (nand
flash)
1. 查看当前系统的分区情况
12$ adb shell $ cat /proc/mtd
2. 分区对应的 img(源码编译后生成在 out/target/product/xxx/
目录下)
modem(多个,支持电话和 GPS)
amss.mbn
bootloader(启动用)
appsboot.mbn
空中升级
fota*(升级用, 可能多个)
内核和文件系统
boot.img(内核和基本文件系统)
系统分区
system.img(系统分区)
用户数据分区
userdata.img(数据分区)
3. 参考
bootloader 启动顺序
http://blog.csdn.net/yili_xie/archive/2010/05/14/5592276.aspx
android应用的启动过程
android 应用的启动过程
#移动开发 #Android
1. 说明
应用的启动过程通常是通过 startActivity
函数,无论是在应用中调其它应用还是在桌面(桌面是 Launcher
应用)上点击,最终都将通过这个函数启动进程或者界面,下面以分析代码的方式,介绍它具体的工作过程
2. 过程
Launcher/src/com/android/launcher.java
在应用或桌面上启动应用,例如桌面应用的启动由于中调用了
startActivity() 函数
frameworks/base/core/java/android/app/Activity.java:startActivity()
Activity.java 继承了 Context.java,并实现了它的
startActivity(),它向下调用了
execStartActivity()
frameworks/base/core/java/android/app/Instrumentation.java:execStartActivity()
execStartActivity 利用 Intent ...
android权限的实现
android 权限的实现
#移动开发 #Android
1. 权限
每个程序在安装时都有建立一个系统 ID,如
app_15,用以保护数据不被其它应用获取。Android
根据不同的用户和组,分配不同权限,比如访问 SD
卡,访问网络等等。底层映射为 Linux 权限。
2. 应用申请权限
应用开发者通过 AndroidManifest.xml 中
指定对应权限,再映射到底层的用户和组,默认情况下不设定特殊的权限。AndroidManifest
加入权限后系统安装程序时会在图形界面中提示权限
如果是缺少某个权限(程序中使用的某种权限而在 AndroidManifest.xml
中并未声名),程序运行时会在 logcat
中打印出错误信息 requires
与某个进程使用相同的用户 ID
应用程序可与系统中已存在的用户使用同一权限,需要在 AndroidManifest.xml
中设置 sharedUserId,如
android:sharedUserId="android.uid.shared",作用是获得系统权限,但是这样的程序属性只能在
build
整个系统时放进 ...
android适配硬件平台
android 适配硬件平台
1. 相关硬件
电池,RTC,键值(普通键值,DOCKING 键值),LED
灯,背光,传感器(亮度,距离,速度,指南针等),振动,蓝牙,相机,音视频引擎,网络,显示,电话
2. 硬件相关的主要目录
kernel,vendor,device,hardware,bootable
3. 以 HTC G1 为例分析其主要的平台配置目录 device/htc/dream/* (froyo
源码)
注意:froyo 以前版本在 vendor/htc 中,需要单独下载,现在都已经在
git 里包含了 g1,g2 的支持。
说明 (参见 g1,g2)
AndroidProducts.mk
说明产品都需要编什么东西,定义产品使用哪个 mk 文件
vendorsetup.sh
加上某硬件的支持,以便编译前用 lunch 选择
full_dream.mk
定义产品所要编译的项目,指定需要编译哪些应用,产品名称,设备,型号(重要)
BoardConfig.mk
含 mtd 设备的分区,硬件相关的模块,及编译工具
AndroidBoard.mk
编译 kernel, boo ...
数据分析软件SPSS及数据挖掘软件WEKA使用
数据分析软件 SPSS
及数据挖掘软件 WEKA 使用
#数据分析
1. 说明
从数据表中读入数据,用 SPSS 进行数据处理,然后用 WEKA 进行数据分析。
2. EXCEL
目的
用 java 将其它数据写入 EXCEL
读写 excel 的 jar 包 jexcelapi 从此处下载
[http://www.andykhan.com/jexcelapi/download.html
](http://www.andykhan.com/jexcelapi/download.html)
java 读写 excel 例程示例
http://www.javaeye.com/topic/55844
[http://mengqingyu.javaeye.com/blog/440358
](http://mengqingyu.javaeye.com/blog/440358)
3. 数据分析软件 SPSS(占据 90% 市场分额)
目的
整理数据,分析数据,结果展示
读入数据
方法一:从 excel 中复制单元格,粘贴在 SPSS 中
直接打开 excel 文件 (*.xls),注 ...
Android使用XML-RPC实现blog客户端
Android 使用 XML-RPC 实现
blog 客户端
#移动开发 #Android
1. 原理介绍
XML-RPC 介绍
XML-RPC 的全称是 XML Remote Procedure Call,即 XML 远程方法调用。原理是
XML-RCP
工具把传入的参数组合成 XML, 然后用通过 http
协议发给服务器,服务器回复 XML 格式数据,再由工具解析给调用者。
Meta Weblog API
一些 Blog 提供 Meta Weblog API,用以支持通过 XML-RPC
的方法在软件中编辑及浏览 Blog。常用的 API
如下: 发布新文章 (metaWeblog.newPost)、获取分类
(metaWeblog.getCategories) 和最新文章
(metaWeblog.getRecentPosts)、新建文章分类
(wp.newCategory)、上传图片音频或视频
(metaWeblog. newMediaObject) 等。
2. Android 的 XML-RPC 支持
Android 本身并不支持 XML-RPC 协议, 需要下载相关 ...
android的intent使用方法
android 的 intent 使用方法
#移动开发 #Android
android 的 intent 使用方法
1. 说明
Android 中提供了 Intent 机制来协助应用间或者应用程序内部的交互与通讯。
Intent 的两种基本用法:一种是显式的 Intent,即在构造 Intent
对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的
Intent,即 Intent 的发送者在构造 Intent
对象时,并不知道接收者是谁,只是指出接收者的一些特性(比如说启动音乐播放软件)
2. 使用方法
启动服务
关键函数
context.startService() 或 context.bindService()
示例
** Intent i = new Intent(this, MyTestService.class);
this.startService(i); // ** ** 启动 ** ** service **
发送广播
关键函数
context.sendBroadcast()
发送方
** String msg = “test”;
Inten ...
AndroidPrelink实现的源码分析
Android Prelink
实现的源码分析
1. 原理简介
Prelink
Prelink
即预链接技术是利用事先链接以代替运行时链接的技术,以加快共享库的加载速度,它不仅能加快程序启动时间,还可以减少部分内存开销(它能使
KDE 的启动时间减少
50%)。每次程序执行时,进行的链接动作都是一样的,链接相对来说开销很大,尤其是嵌入式系统。
普通 Linux 系统的 Prelink
Redhat 系统中 prelink 工具 (/etc/cron.dialy/prelink)
会修改可执行程序,把它与所需库的链接信息加入可执行程序。在程序运行时,使用
glibc(glibc > 2.3.1-r2) 中的 ld-
linux.so
来进行链接。用此方式,每次更新动态库后,使用它的程序都需要重新
prelink,因为新库中的符号信息,地址等很可能与原来不同了。
Android 的 Prelink
Android 源码中有一组 map 文件,其中定义了需要预连接的动态库,其 Prelink
信息以及对应的逻辑地址(4G
地址空间中位置),在动态库编译时,预处理程序 apr ...
MSN博客搬家工具
MSN 博客搬家工具
#工具 #编程语言/Java
1. 说明
最近 MSN 的博客即将关闭,而使用 MSN 上推荐的迁移到
workpress,又总是不成功。在网上下了几个工具,都是各个 blog
开发的,只能搬到特定的 blog 中去。让人十分郁闷。
后来试写了一段代码,先把从 MSN 博客备份到本地,挑了些技术文档搬到了
CSDN
,下面是程序的实现和说明,大家举一反三吧。用此方法也可以搬到其它的
blog。
编译好的程序可以下载,源码可以下载,大家可以直接使用或者修改加以完善。
2. 原理
使用 XML-RPC 协议,一个 XML-RPC 消息就是一个请求体为 xml 的
http-post
请求,被调用的方法在服务器端执行并将执行结果以 xml
格式编码后返回,可以通过此协议,读写 blog 上的文章,如 CSDN,
WORDPRESS,新浪等都支持,利用它可以方便地开发 blog 的客户端。
3. 程序说明
MSN 网页解析
1234567891011121314151617181920212223242526272829303132333435363738394041 ...