随笔分类 -  Android

根据两点经纬度计算距离
摘要:根据两点经纬度计算距离这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”。在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”;构成这些圆圈的线段,叫做纬线。我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬。北极就是北纬90度,南极就是南纬90度。纬度的高低也标志着气候的冷热,如赤道和低纬度地地区无冬,两极和高纬度地区无夏,中纬度地区四季分明。 其次,从北极点到南极点,可以画出许多南北方向的与地球赤道垂直的大圆 阅读全文

posted @ 2012-04-10 01:17 陆晓峰 阅读(1063) 评论(0) 推荐(0) 编辑

Android 调用地图显示信息
摘要:笔记: Android 调用地图显示信息try{ //直接调用图吧地图 Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("geo:39.922840,116.3543240,北京市西城区阜外大街2号万通大厦"); intent.setData(uri); intent.setClassName("com.mapbar.android.mapbarmap", "com.mapbar.android.mapbarmap.FilterServiceActivity 阅读全文

posted @ 2012-04-10 00:59 陆晓峰 阅读(2893) 评论(0) 推荐(0) 编辑

Android 删除手机联系人,添加手机联系人,更新手机联系人信
摘要:主要要添加权限:java代码:<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission><uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>复制代码 删除联系人java代码:private void delContact(Context context, String name) {Cu 阅读全文

posted @ 2012-04-05 17:27 陆晓峰 编辑

Vcard Quoted-Printable 编码 解码
摘要:写点什么呢?不写了,直接贴代码. 懂的不写也懂,不懂的等用到的时候就懂了/** * Copyright 2001-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apac 阅读全文

posted @ 2011-10-26 23:02 陆晓峰 阅读(2685) 评论(0) 推荐(0) 编辑

基于 Android NDK 的学习之旅-----目录
摘要:Android NDK 的学习之旅系列文章都写完这么久了,突然发现少了个目录,真是晕啊。加个目录把,给那些需要的朋友。1、基于Android NDK 的学习之旅-----序言2、基于Android NDK 的学习之旅-----环境搭建3、基于Android NDK 的学习之旅-----Android.mk介绍4、基于Android NDK 的学习之旅-----HelloWorld(附源码)5、基于Android NDK 的学习之旅-----JNILOG 打印(附源码)6、基于Android NDK 的学习之旅-----JNI数据类型7、基于Android NDK 的学习之旅-----Java调 阅读全文

posted @ 2011-09-15 16:34 陆晓峰 阅读(4093) 评论(4) 推荐(4) 编辑

基于 Android NDK 的学习之旅-----资源释放
摘要:基于 Android NDK 的学习之旅-----资源释放 做上一个项目的时候因为与C引擎交互频繁,有时候会突然莫名其妙的的整个应用程序直接挂掉。因为我是学Java 开始的,所以对主动释放内存没多大概念(GC直接帮忙回收),后查询原因才知道是因为JNI 有些对象内存未释放引起。下面介绍下相关的资源释放。JNI 编程实现了 native code 和 Java 程序的交互,因此 JNI 代码编程既遵循 native code 编程语言的编程规则,同时也遵守 JNI 编程的文档规范。在内存管理方面,native code 编程语言本身的内存管理机制依然要遵循,同时也要考虑 JNI 编程的内存管理。 阅读全文

posted @ 2011-08-21 14:29 陆晓峰 阅读(10093) 评论(0) 推荐(2) 编辑

基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码)
摘要:基于 Android NDK 的学习之旅-----数据传输(引用数据类型) 接着上篇文章继续讲。主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输。1、主要流程1、String 字符串传输a)上层定义一个native的方法,需要一个String参数,返回一个Stringb)JNI对应上层的方法,打印出上层传输下来的String数据,并返回处理String数据c)上层 收到 native 方法 返回的 值,在UI中显示出来2、自定义对象的传输a)自定义一个对象Personb)上层定义一个native方法,参数Person,返回值Personc)JNI接收对象,打印出相关信息数据d 阅读全文

posted @ 2011-08-20 12:55 陆晓峰 阅读(8261) 评论(1) 推荐(0) 编辑

基于 Android NDK 的学习之旅-----数据传输一(基本数据类型和数组传输)(附源码)
摘要:基于 Android NDK 的学习之旅-----数据传输(基本数据类型和数组传输) 之前的一些文章都有涉及到上层和中间层的数据传输,简单来说,也就是参数和返回值的使用。因为中间层要做的最多的也就是数据传输与转换,下面来介绍下这方面的知识。 数据传输可分为 基本数据类型传输 和 引用数据类型的传输 , 因为数组传输也比较特别(其实数组也是引用类型),所以这里也专门分出来讲讲。1、主要流程1、基本数据类型的传输a)上层定义一个native的方法,需要一个int 参数 ,返回一个int值b)JNI 对应 上层的方法 , 打印出 上层 传输下来的 int数据,并返回 int数据c)上层 收到 nat 阅读全文

posted @ 2011-08-19 11:26 陆晓峰 阅读(13195) 评论(4) 推荐(2) 编辑

基于 Android NDK 的学习之旅----- Java 方法映射到C中的签名(附源码)
摘要:基于 Android NDK 的学习之旅----- Java 方法映射到C中的签名 刚接触JNI 的 兄弟在看一些demo的时候 发现有类似与“([Ljava/lang/String;)V”的东西的时候肯定会很“蛋疼”,完全不懂这是啥东西,怎么来的,有啥用处? 今天就讲讲这个“蛋疼”的东西把,俗称 方法签名直接来个Demo 把 :观察下面四个方法对应的签名 publicvoid test(){} ()V publicvoid test1(int i){} (I)V publicint test2(){ return 1;} ()I publicint test3(int i) { ret... 阅读全文

posted @ 2011-08-18 08:56 陆晓峰 阅读(6988) 评论(3) 推荐(4) 编辑

基于 Android NDK 的学习之旅----- C调用Java(附源码)
摘要:基于 Android NDK 的学习之旅----- C调用Java许多成熟的C引擎要移植到Android 平台上使用 , 一般都会 提供 一些接口, 让Android sdk 和 jdk 实现。下文将会介绍 C 如何 通过 JNI 层调用 Java 的静态和非静态方法。1、主要流程1、新建一个测试类TestProvider.javaa)该类提供了2个方法b)一个静态的方法,一个非静态的方法2、JNI中新建Provider.ca)该文件中需要把Java中的类TestProvider映射到C中b)把TestProvider的两个方法映射到C中c)新建TestProvider 对象d)调用两个方法3 阅读全文

posted @ 2011-08-17 08:53 陆晓峰 阅读(37947) 评论(19) 推荐(6) 编辑

基于 Android NDK 的学习之旅-----Java 调用C(附源码)
摘要:基于 Android NDK 的学习之旅-----Java 调用C随便谈谈为什么要Java调用C 吧:我认为:1、 有些公司开发Android项目的时候, 许多组件功能可能是C中已经实现了,所以我们没必要同样的功能又在java中实现一遍。例如我之前做的一个项目,公司C引擎已经很成熟了,所以直接在java中封装好接口,由C去实现。2、C的速度一般是java的10-20倍把,有些对速度要求高的就需要在C中实现。例如我以前在Android项目中有要求批量(10000++)生成MD5的值,由于测试对java中直接生成的效果不满意,所以后面就换成C去实现了。3、 …..不罗嗦了,直接开始吧。1、主要流程 阅读全文

posted @ 2011-08-15 22:46 陆晓峰 阅读(14413) 评论(4) 推荐(4) 编辑

基于 Android NDK 的学习之旅-----JNI 数据类型
摘要:基于 Android NDK 的学习之旅-----JNI 数据类型经典老套流程,学编程语言东西,先学它最基础的数据类型,JNI也是如此。JNI 定义了一系列基本数据类型和引用数据类型与java想对应。1、基本数据类型下面一张表是描述了 Java 基本数据类型和JNI中基本数据类型的相对应关系已经占用空间大小。随便观察就能发现,其实就基本数据类型而已,JNI基本数据类型只是比Java基本数据类型前多了个’j’而已当然,JNI中还有个Java中没有的jsize,定义如下:typedef jint jsize;其实jsize整型是用来描述基本指标和大小,没有什么神秘的。2、引用数据类型JNI 引用类 阅读全文

posted @ 2011-08-15 13:55 陆晓峰 阅读(6657) 评论(0) 推荐(3) 编辑

基于 Android NDK 的学习之旅-----JNI LOG 打印(附源码)
摘要:基于 Android NDK 的学习之旅-----JNI LOG 打印程序都是调出来的。下面我介绍下JNI层的log打印方法的使用,类似与Android sdk提供的log1、Android 应用层 MainActivity.java主要功能代码a)静态载入 So 库 b)声明本地方法c)调用本地方法代码附有注释如下:public classMainActivity extends Activity { //也就是你mk配置文件中的 LOCAL_MODULE := NDK_02 private static final String libSoName ="NDK_02"; 阅读全文

posted @ 2011-08-14 18:34 陆晓峰 阅读(21277) 评论(2) 推荐(0) 编辑

基于 Android NDK 的学习之旅-----HelloWorld (附源码)
摘要:基于 Android NDK 的学习之旅-----HelloWorldHelloWorld作为所有编程语言的起始阶段,占据着无法改变的地位,所有中/英/法/德/美……版本的编程教材中,hello world总是作为第一个TEST记录于书本之中,所有的编程第一步就在于此了!经典之中的经典!hello world! 下面介绍下NDK开发的Hello World1、Android 应用层 MainActivity.java主要功能代码a)静态载入 So 库 static { System.loadLibrary(libSoName);}b)声明本地方法public native String get 阅读全文

posted @ 2011-08-14 13:11 陆晓峰 阅读(10352) 评论(2) 推荐(3) 编辑

基于 Android NDK 的学习之旅-----Android.mk 介绍
摘要:基于 Android NDK 的学习之旅-----Android.mk 介绍一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell 阅读全文

posted @ 2011-08-13 22:04 陆晓峰 阅读(27326) 评论(7) 推荐(3) 编辑

基于 Android NDK 的学习之旅-----环境搭建
摘要:基于 Android NDK 的学习之旅-----环境搭建工欲善其事 必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。1、Android 开发环境搭建Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。1) 下载 JDK2) 下载 Eclipse3) 下载 Android SDK4) 启动Eclipse , 安装 ADT2、下载安装Android NDK我使用的NDK版本为r5Google 出的最新NDK 为 r6 下载地址为http://developer.android.com/sdk/ndk/ 阅读全文

posted @ 2011-08-13 10:44 陆晓峰 阅读(43866) 评论(34) 推荐(12) 编辑

基于 Android NDK 的学习之旅-----序言
摘要:前些日子做了个Android项目, 引擎层 用C的, 准备写这个系类的文章,借此跟朋友来分享下我NDK开放的经验以及自己知识的总结和备忘。希望能给需要这方面资料的朋友提供一定的帮助。主要涉及到: 环境的搭建Android.mk 文件的 配置 HelloWorldNDK 打印信息JNI 数据类型Java 调用 CC 调用 Java数据的传输(基本数据类型的传输,引用数据类型的传输,数组的传输)在C中新建Java对象Java方法在C中的映射(包括了签名的使用)C中如何调用Java的方法(包括了静态的和非静态的)JNI中资源的释放 等等先详细介绍下NDK, JNI:What isthe NDK?Go 阅读全文

posted @ 2011-08-12 14:06 陆晓峰 阅读(4759) 评论(10) 推荐(4) 编辑

Sqlite 修改字段名
摘要:Sqlite 不支持直接修改字段的名称。我们可以使用别的方法来实现修改字段名。1、修改原表的名称ALTER TABLE table RENAME TO tableOld;2、新建修改字段后的表CREATE TABLE table(ID INTEGER PRIMARY KEY AUTOINCREMENT, Modify_Username text not null);3、从旧表中查询出数据 并插入新表INSERT INTO table SELECT ID,Username FROM tableOld;4、删除旧表DROP TABLE tableOld; 阅读全文

posted @ 2011-07-13 09:32 陆晓峰 阅读(19165) 评论(0) 推荐(1) 编辑

教你如何开关Android的APN网络
摘要:由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN。大家可以研究一下frameworks/base/core/java/android/provider/Telephony.java这个类,比较重要的就是 URI 和数据库字段:content://telephony/carriers字段可以在Telephony.java中找到。其实原理很简单 :1 、 当开启APN的时候,设置一个正确的移动或者联通的APN2、 关闭的时候设置一个错误APN就会自动关闭网络请看代码:Activity:Java代码p 阅读全文

posted @ 2011-05-03 16:00 陆晓峰 阅读(1680) 评论(0) 推荐(0) 编辑

android 再按一次后退键退出应用程序
摘要:private static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { isExit = false; hasTask = true; } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.prin... 阅读全文

posted @ 2011-04-20 16:50 陆晓峰 阅读(3226) 评论(0) 推荐(0) 编辑

导航