自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 资源 (2)
  • 收藏
  • 关注

原创 【移动开发】如何使用ndk和jni

概述Android系统的底层库由c/c++编写,上层Android应用程序通过Java虚拟机调用底层接口,衔接底层c/c++库与Java应用程序间的接口正是JNI(Java Native Interface)。本文将描述如何在Ubuntu下配置Android JNI的开发环境,以及如何编写一个简单的c函数库和JNI接口,并通过编写Java程序调用这些接口,最终运行在模拟器上的过程。环境配置1. 安装jdk 1.6(1) 从jdk官方网站http://www.oracle.com/techne

2014-09-22 15:56:02 2155

原创 【问题汇总】在C/C++中使用Android Log导致编译失败的问题

在JNI中使用Android自带的Log日志功能,在编译时提示如下异常:kaizen@tuan800-inc:~/workspace_eclipse_1/im_pulltorefresh/MyJNITest$ ndk-build[armeabi] SharedLibrary : libuninstalled_observer.so/home/kaizen/developer/android-ndk-r10b/toolchains/arm-linux-androideabi-4.6/prebuilt

2014-09-22 11:59:46 4929

原创 【问题汇总】Android NDK编译时版本异常的问题

在使用NDK编译so库的时候,有时提示如下异常:Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml可以看出,编译的版本和配置文件的版本不匹配导致的这个异常。解决办法:在该工程的jni文件夹下,创建(若不存在,才创建)一个名为Application.mk的文件,其中的代码如下:APP_PLATFORM := android-

2014-09-22 11:49:23 4550

原创 【问题汇总】图片资源引起IllegalArgumentException异常的问题

最近开发的app,在testin平台上执行monkey test会出现错误“IllegalArgumentException“;(三星 GT-S5360)崩溃日志如下:8.789E/AudioPlayer(1311):mFirstBufferResult=007-2217:28:48.898E/AudioPlayer(1311):mFirstBufferResult=007-2217:28:49.843E/AndroidRuntime(19219):FATALEXCEPTION:main07-

2014-09-19 10:51:19 8533

原创 【问题汇总】BroadcastReceiver静态内部类注册的问题

正常情况下,静态注册广播使用如下方式:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.bn.ex2_1"> <application android:icon="@drawa

2014-09-18 16:36:13 5054 1

原创 【问题汇总】ListView的FooterView设置可见性的问题

ListView的FooterView一般用来给用户展示一些提示信息。正常情况下,是这么使用的。代码如下:// footerfooterLayout = new PullLoadingLayout(context, MODE_PULL_DOWN_TO_REFRESH, releaseLabel, pullLabel, refreshingLabel, isShowHeader);refreshableView.addFooterView(footerLayout);首先,创建一个F

2014-09-17 11:09:30 8139 4

原创 【问题汇总】透明Activity引起的问题

如果想要把一个Activity变为透明,只需设置一个相应的style即可。下面的style可以满足需求。<resources> <style name="translucent"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowIsTranslucent">true</item> </style></resources>但是,这么做会引入一个新的问题。

2014-09-15 15:26:29 2537 1

原创 【移动开发】View的scrollTo()和scrollBy()区别

首先,需要知道的是,View是可以延伸到屏幕之外的,可以想象一下ListVIew或GridView。也就是说View的尺寸可以超过屏幕的尺寸。View的大小就是onDraw()中Canvas画布的大小。Canvas可以做translate()、clipRec()t等变换,可以说Canvas是无边界的。而我们在屏幕上所见到的,只是Canvas的一部分而已。可以调用View的scrollTo()和sc

2014-09-12 13:27:10 17518 5

原创 【移动开发】ListView的setSelection()和setSelectionFromTop()联系

通常,app中的数据都是以ListView的形式展示的。默认地,把“新”数据添加到数据列表的尾部。但是,如果是IM类型的app,比如查看历史消息这个模块。新数据并不是插到数据列表的尾部,而是插到数据列表的头部。要实现比较好的用户体验,需要保持当前的ListView的位置。换句话说,如果我们能够随心所欲地指定ListView滚动的位置,那么这个问题就迎刃而解。在ListView中,有一个setSelectionFromTop()方法,下面是一个使用范例。代码如下:

2014-09-10 16:55:41 61332 3

翻译 【移动开发】Ken Burns特效的幻灯片

Ken Burns特效,是视频产品中使用的一种平移和缩放的静态图片的特效。先看维基百科针对Ken Burns特效的介绍。http://en.wikipedia.org/wiki/Ken_Burns_effect要实现这个效果,需要使用NineOldAndroids库,这个库可以在旧版本上使用Android 3.0的动画库。

2014-09-10 00:19:56 35314 22

翻译 【移动开发】在Canvas上显示动画

当自定义View的时候,可以利用Canvas给View添加一些动画效果。下面的例子,是在屏幕上绘制一个红色的小方块,这个小方块会在屏幕上面“乱跳”。知识点使用到的知识点:(1) 在View的子类的draw()中调用invalidate(),可以让View对象一直保持重绘状态,从而可以使Canvas一直处于绘画过程中。(2) Canvas的绘制功能,例如绘制Rect、Circle、Path等。(3) 小方块碰撞屏幕边缘的算法。实现小方块视图。继承View类,重写onDraw()方法,并提

2014-09-08 13:15:12 3646

翻译 【移动开发】为ViewGroup的子视图添加动画效果

默认情况下,ViewGroup中的子视图是直接显示出来的。有一个简单的方法可以为这个过程添加动画效果。主要使用LayoutAnimationController类,有一点需要注意,不可以为每一个单独的子视图分别指定不同的动画效果。下面是在ListView中为每一个Item添加动画效果的例子。

2014-09-07 12:57:27 4321

翻译 【移动开发】如何自定义ViewGroup

依照惯例,先从一个例子说起。很简单,3张扑克牌叠在一起显示。这个布局效果该如何实现呢?有的同学该说了,这很简单啊,用RelativeLayout或FrameLayout,然后为每一个扑克牌设置margin就能实现了。ok,那就看一下通过这种方式是如何实现的。代码如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"

2014-09-05 00:14:02 10409 9

翻译 【移动开发】布局优化利器<include/>和ViewStub

当创建复杂的布局的时候,有时候会发现添加了很多的ViewGroup和View。随之而来的问题是View树的层次越来越深,应用也变的越来越慢,因为UI渲染是非常耗时的。这时候就应该进行布局优化了。这里介绍两种方式,分别为标签和ViewStub类。使用是为了避免代码的重复。设想一种情况,我们需要为app中的每个视图都添加一个footer,这个footer是一个显示app名字的TextView。通常多个

2014-09-04 00:24:49 8475 29

翻译 【移动开发】按比例布局layout_weight和weightSum

混合使用weightSum和layout_weight先看效果,button占据屏幕宽度的一半。再看开发文档中的描述。“定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定子视图的layout_weight属性为0.5,并设置LinearLayout的weightSum属性为1.0,实现子视图占据可用宽度的50。”XML文件的源码。<LinearLayout xmlns:android="http://sc

2014-09-01 01:31:21 16793 7

原创 【并发编程】线程间通信的方式

管道流Pipes“管道”是java.io包的一部分,它是Java的特性,而不是Android特有的。一条“管道”为两个线程建立一个单向的通道。生产者负责写数据,消费者负责读取数据。public class PipeExampleActivity extends Activity { private static final String TAG = "PipeExampleActivity"; private EditText editText; PipedReader

2014-08-31 22:40:40 12137 8

原创 【并发编程】程序的启动和终结

Android是一个多用户,多任务的系统。允许多个app在同一时刻执行,在多个程序之间切换并不会有明显的延迟。多任务是由Linux内核负责处理的,而程序的运行基于Linux进程。Linux进程Linux为每一个用户分配一个唯一的用户ID(User ID),用于区分不同的User。因为权限的原因,每一个用户只能访问私有资源,没有用户(除了Root用户,即超级管理员。我们这里不考虑这个用户。)可以访问其他用户的私有资源。因而,“沙盒”就用来独立这些用户。在Android中,每一个应用都有一

2014-08-13 10:13:17 2659 8

原创 【并发编程】系统架构和组件详解

写在前面的话如果对Android开发还不是特别了解的同学,可以参考我之前翻译的Android开发教程。http://blog.csdn.net/column/details/development4android.html软件栈The software stack in Android.Applications 应用层,包括使用Java库和Android框架所编写的程序。Core Java Java类库,并不是完全的Java SE或Java ME的实现,而是Apache

2014-08-10 12:46:11 3600 6

原创 【环境配置】配置svn

1. 安装sudo apt-get install subversion2. 常用命令1)将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2)往版本库中添加新的文件svn add file例如:svn add test.php(添加test.php

2014-07-26 11:23:04 2200

原创 【环境配置】配置AndroidStudio

1. 构建新项目,gradle下载不成功的问题。创建新项目的时候,提示一直下载gradle,但是无法下载成功。1)首先,去gradle的官网下载压缩包。http://www.gradle.org/downloadsgradle-1.12-all.zip2)把下载好的gradle-1.12-all.zip拷贝到~/.gradle/wrapper/dists/gradle-1.12-all/2apkk7d25miauqf1pdjp1bm0uo注:如果用AS创建过新的工程,那么AS会自动创

2014-07-18 16:42:05 85629

原创 【环境配置】常用软件

腾讯企业邮箱支持通过客户端进行邮件管理。POP3/SMTP协议收发邮件服务器地址分别如下。接收邮件服务器:pop.exmail.qq.com (端口 110)发送邮件服务器:smtp.exmail.qq.com (端口 25)同时支持SSL加密方式登录,此时需要更改一下端口号。接收服务器端口:995发送服务器端口:465IMAP协议接收邮件服务器:imap.exmail.qq.com如果使用SSL

2014-07-13 10:44:41 2987

原创 【环境配置】配置ndk

背景Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可以实现的。不过,Google也表示,使用原生SDK编程相比Dalv

2014-07-13 10:41:47 2015

原创 【环境配置】配置sdk

1. 下载sdk官方下载地址http://developer.android.com/sdk/index.html选择android-sdk_r12-linux_x86.tgz下载好了之后双击打开,解压方式跟之前的jdk解压方式一样,不再重复解压之后的路径是/home/developer/android/android-sdk-linux_x86

2014-07-13 10:37:19 2751

原创 【环境配置】配置jdk

1. 下载jdk的安装文件http://www.oracle.com/technetwork/java/javase/downloads/index.html文件名为jdk-6u30-linux-i586.bin2. 复制安装到指定目录这里指定的安装目录是:/usr/developer/java(注:文件夹可以任意指定)3. 切换到root用户,执行jdk-6u30-linux-i586.bin。

2014-07-13 10:13:41 1773

原创 【环境配置】配置git

ssh和git的安装(1) git是基于ssh协议的,首先安装ssh。sudo apt-get install openssh-server openssh-client(2)安装好ssh后,启动ssh服务。sudo /etc/init.d/ssh restart(3) 安装gitsudo apt-get install git-core(4) 生成本地ssh公钥ssh-keygen -C 'your emaildress' -t rsa例如:ssh-keygen -C 'sung

2014-07-13 09:43:03 3055

原创 【环境配置】Linux的常用命令

系统信息 arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用

2014-07-13 09:16:20 2000

原创 【数据结构】排序_Sort

#include #include #include #include #include #include #include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAX_LENGTH_INSERT_SORT 7 /* 用于快速排序时判断是否选用插入

2013-11-15 11:44:20 12300 1

原创 【数据结构】散列表_HashTable

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */

2013-11-15 11:44:06 11510

原创 【数据结构】B树_BTree

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */

2013-11-15 11:43:30 12750

原创 【数据结构】平衡二叉树_AVLTree

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */

2013-11-15 11:42:22 11193

原创 【数据结构】二叉排序树_BinarySortTree

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */

2013-11-15 11:41:46 10867

原创 【数据结构】静态查找_Search

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */

2013-11-15 11:40:33 10035

原创 【数据结构】关键路径_CriticalPath

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXEDGE 30#define MAXVEX 30

2013-11-14 17:19:58 11641

原创 【数据结构】最短路径_Floyd

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXEDGE 20#define MAXVEX 20

2013-11-14 17:19:23 10672

原创 【数据结构】拓扑排序_TopologicalSort

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXEDGE 20#define MAXVEX 14

2013-11-14 17:19:21 10496

原创 【数据结构】最短路径_Dijkstra

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXEDGE 20#define MAXVEX 20

2013-11-14 17:18:51 11608

原创 【数据结构】最小生成树_Kruskal

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,

2013-11-14 17:17:35 10657

原创 【数据结构】最小生成树_Prim

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXEDGE 20#define MAXVEX 20

2013-11-14 17:16:58 10585

原创 【数据结构】邻接表深度和广度遍历DFS_BFS

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 9 /* 存储空间初始分配量 */#d

2013-11-14 17:16:13 10941

原创 【数据结构】邻接矩阵深度和广度遍历DFS_BFS

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status; /* Status是函数的类型,

2013-11-14 17:15:40 12675

【Android案例分享】【Android 案例分享】仿QQ5.0侧滑菜单ResideMenu

使用SlidingMenu库,仿QQ5.0动画效果。 教程地址 http://blog.csdn.net/manoel/article/details/39013095

2014-09-03

ScrollView中嵌套ListView的例子

ScrollView中嵌套ListView的例子和解决方案

2014-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除