随笔分类 -  Android

Android,靠他吃饭,my lover
Android: 用jni 获取MAC地址
摘要:最近有个需求,需要在jni层获取android设备的mac地址,google了一圈,没看到现成的实现方法,所以就只好自己写一个了。基本思路是,通过jni调用android java层的api,获取wifi的mac地址。理论上,所有的java代码都可以翻译成jni代码,所以应该可以实现。首先来看看mac地址获取的java实现代码:public String getLocalMacAddress(Context context) { WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);... 阅读全文
posted @ 2012-07-04 12:20 Braincol 阅读(9657) 评论(1) 推荐(1) 编辑
Android Activity 生命周期的透彻理解
摘要:说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊。 既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂。 首先看看android developers 网上的activity的生命周期图: activity启动的时候:onCreate --->... 阅读全文
posted @ 2012-03-06 16:13 Braincol 阅读(70537) 评论(14) 推荐(9) 编辑
Andriod: 在xml布局中使用自定义属性
摘要:今天在看android froyo的launcher2 源码的时候,在launcher.xml中看到有这么一段代码: <com.android.launcher2.DragLayer xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com... 阅读全文
posted @ 2011-10-27 23:36 Braincol 阅读(10312) 评论(1) 推荐(2) 编辑
Android: 在WebView中获取网页源码
摘要:1. 使能javascript: webView.getSettings().setJavaScriptEnabled(true);2. 编写本地接口final class InJavaScriptLocalObj { public void showSource(String html) { Log.d("HTML", html); }} 3. 向网页暴露本... 阅读全文
posted @ 2011-10-26 10:43 Braincol 阅读(42228) 评论(2) 推荐(1) 编辑
libcurl在android下的移植、编译与测试
摘要:由于项目需要在NDK中使用网络开发,对于c语言网络开发来说,libcurl库是个很不错的选择,但android系统中并没有自带该库,所以就得自己移植了。 下面是移植步骤: 1. 下载curl源码 我这里下载的是curl-7.22.0,源码下载地址为:http://curl.haxx.se/download.html 2. 准备android源码编译环境, android源... 阅读全文
posted @ 2011-10-15 23:53 Braincol 阅读(14140) 评论(0) 推荐(0) 编辑
正则表达式pcre在Android下的移植
摘要:因为项目需要在android的NDK开发中使用pcre正则表达式库,而android系统中并没有自带该库,所以就得另外移植了, 下面是移植的详细步骤: 1. 下载pcre源码,可以到http://sourceforge.net/projects/pcre/下载源码。 我这里使用的是pcre-7.8.tar.gz 。 2. 将pcre-7.8 的源码拷贝至android源码树... 阅读全文
posted @ 2011-10-15 22:24 Braincol 阅读(2682) 评论(1) 推荐(0) 编辑
【转】eclipse 上调试android的自带应用方法
摘要:我们导入一个android自带应用的工程时,往往有很多错误。以自带的 AlarmClock 为例,导入eclipse后,往往出现很多错误,如下图所示: 例如,上图中的Intent.ACTION_ALARM_CHANGED 无法访问,下面我们就找到源代码看看原因何在? 根据java 编程规范,我们知道这个api (静态变量)被隐藏掉了,所以在sdk中无法使用。在知道了原因之后,我们有... 阅读全文
posted @ 2011-09-20 10:54 Braincol 阅读(4565) 评论(0) 推荐(0) 编辑
android: 使用AIDL实现进程间通信(附示例源码下载)
摘要:关于AIDL的介绍及实现步骤等请参考: http://www.cnblogs.com/hibraincol/archive/2011/09/06/2169325.html 本篇文章只是用一个实例来分析AIDL的实现。 本示例实现的是:AIDL客户端通过AIDL接口获取AIDL服务端中提供的webPage信息,下面详述AIDL通信的实现步骤: 一、编写服务端代码 1. 首先编写Androi... 阅读全文
posted @ 2011-09-11 21:24 Braincol 阅读(9859) 评论(2) 推荐(2) 编辑
Android翻译:Android interface definition language(aidl)
摘要:AIDL(Android Interface Definition Language) IPC机制是面向对象的,轻量级的。通过AIDL定义的接口可以实现服务器端与客户端的IPC通信。在Android上,一个进程不能简单的像访问本进程内存一样访问其他进程的内存。所以,进程间想要对话,需要将对象拆解为操作系统可以理解的基本数据单元,并且有序的通过进程边界。通过代码来实现这个数据传输过程是冗长乏味的,... 阅读全文
posted @ 2011-09-06 23:52 Braincol 阅读(3850) 评论(0) 推荐(0) 编辑
Android:创建窗口式Activity
摘要:Android中的Activity有没有类似于像Windows程序样的窗口式显示呢? 答案当然是有。 下图就是一个窗口式Activity的效果图: 下面就说说实现过程: 首先看看AndroidManifest.xml 1: <?xml version="1.0" encoding="utf-8"?> 2: <manifest xmlns:android="http://schemas... 阅读全文
posted @ 2011-08-28 18:00 Braincol 阅读(10554) 评论(0) 推荐(0) 编辑
【转】使用Eclipse开发Android源码
摘要:1、Android的文件系统结构是怎样的,我们安装的程序放在那里?编译Android源码之后,在out/target/product/generic一些文件:ramdisk.img、system.img、userdata.img、 system、 data、root其中, system.img是由 system打包压缩得到的, userdata.img是由 data打包压缩得到的。 ramdis... 阅读全文
posted @ 2011-08-27 21:47 Braincol 阅读(1055) 评论(1) 推荐(1) 编辑
【转】Android浏览器插件开发
摘要:最近做android浏览器插件学到一些东西和大家分享:需要了解的有以下几个方面的知识:1.插件是什么2.android浏览器怎样加载插件和创建实例3浏览器插件和脚本语言的交互4插件内部的数据流 一 浏览器插件介绍: 1.1 概述浏览插件本质是一个功能模块,是浏览器功能的一种扩充。其载体是dll或则so文件。它依附浏览器完成某一特定的功能。插件需要实现浏览器规定的一些函数这些函数叫着NPAPI.正是... 阅读全文
posted @ 2011-08-23 15:45 Braincol 阅读(8921) 评论(0) 推荐(1) 编辑
【转】android浏览器插件小结
摘要:做了一段时间的WebKit开发,后来又研究了一下WebKit的插件,但一直没有时间总结一下,现在终于有点时间可以梳理一下了,也希望能跟大家多多交流 首先要说明一下什么是WebKit插件,WebKit插件就是内核是WebKit的浏览器的插件,IE的不知道,但firefox的插件应该与WebKit插件类似,因为WebKit插件使用的主要一个技术或者说接口叫做NPAPI,而这套接口在mozilla的... 阅读全文
posted @ 2011-08-22 14:22 Braincol 阅读(5615) 评论(0) 推荐(0) 编辑
Android —— 模拟Iphone 样式的 AlertDialog
摘要:先直接给出效果图: 思路: 通过Dialog的方式实现AlertDialog, 因为可以在Dialog中通过setContentView(int layoutResID)来指定Dialog的布局及样式(就像Activity中一样)。 所以我们可以自定义各种样式的alertdialog,至于好不好看,那就得看layout写得怎么样了。 其他也没啥好说的,直... 阅读全文
posted @ 2011-07-30 10:08 Braincol 阅读(6689) 评论(3) 推荐(1) 编辑
【转】Android之apk文件签名——keytool 和 jarsigner
摘要:一、生成密钥库将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA -validity 20000 -eystore ChangeBackgroundWidget.keystore 上面的命令中间不换行,按下“Enter”键,并根据提示填写相关信息,详细信息如下及图... 阅读全文
posted @ 2011-07-27 21:51 Braincol 阅读(22917) 评论(0) 推荐(1) 编辑
Android 开源项目地址备份(持续更新。。。)
摘要:1. 音乐播放器:jamendo-android: https://github.com/jamendo/jamendo-androidRockon-android: https://github.com/fabrantes/rockon-android2. 非常棒的代理,GoAgent的android版: https://code.google.com/p/gaeproxy/ my clone: https://code.google.com/r/nixndev-gaeproxy/ 阅读全文
posted @ 2011-07-14 11:01 Braincol 阅读(798) 评论(0) 推荐(0) 编辑
(转)Android Build System
摘要:Status: Draft (as of May 18, 2006) Objective The primary goals of reworking the build system are (1) to make dependencies work more reliably, so that when files need to rebuilt, they are, and (2) to i... 阅读全文
posted @ 2011-05-31 00:02 Braincol 阅读(5293) 评论(0) 推荐(0) 编辑
Android: NDK编程入门笔记
摘要:为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。 3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。 下面就介绍下Android NDK的入门学习过程: 入门的最... 阅读全文
posted @ 2011-05-30 23:29 Braincol 阅读(146368) 评论(35) 推荐(16) 编辑
Android:创建网格状的RadioGroup
摘要:Android系统自带的RadioGroup只有两种排列方式:横向或纵向。 但是现实中可能需要将RadioGroup按网格状排列, 如何实现? 本文将介绍实现方法。 先看效果图: 思路: 1. 创建一个PopupWindow的弹出窗口 2. 在PopupWindow中填充一个GridView 3. 在GridView内填充多个由img和text组合而成的... 阅读全文
posted @ 2011-05-28 14:14 Braincol 阅读(8618) 评论(3) 推荐(1) 编辑
为android开放类增加自定义成员方法
摘要:android SDK中有些JAVA类是开放的,有些是不开放的,API同样如此。这里所谓开放的类或API,只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,但是对android的上层应用有影响,因为非开放的类或API,android上层应用无法直接访问。 类或API是否开放,是通过doc的注释{@hide}来控制的。比如android.media.Metadata 这个类就是android没有公开的类,因为在frameworks\base\media\libmedia\Metadata.java文件中,定义Metadata类之前有/**{. 阅读全文
posted @ 2011-05-11 21:25 Braincol 阅读(5399) 评论(0) 推荐(2) 编辑