孙国威

博主闭关修炼去了,不再更新~ https://github.com/sunguowei

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

概述 Android系统的底层库由c/c++编写,上层Android应用程序通过Java虚拟机调用底层接口,衔接底层c/c++库与Java应用程序间的接口正是JNI(Java Native Interface)。本文将描述如何在Ubuntu下配置Android JNI的开发环境,以及如何编写一个...

2014-09-22 15:56:02

阅读数 1857

评论数 0

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

在JNI中使用Android自带的Log日志功能,在编译时提示如下异常: kaizen@tuan800-inc:~/workspace_eclipse_1/im_pulltorefresh/MyJNITest$ ndk-build [armeabi] SharedLibrary : libun...

2014-09-22 11:59:46

阅读数 3350

评论数 0

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

在使用NDK编译so库的时候,有时提示如下异常: Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml 可以看出,编译的版本和配...

2014-09-22 11:49:23

阅读数 1020

评论数 0

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

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

2014-09-19 10:51:19

阅读数 6687

评论数 0

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

正常情况下,静态注册广播使用如下方式: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/ap...

2014-09-18 16:36:13

阅读数 4210

评论数 1

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

ListView的FooterView一般用来给用户展示一些提示信息。 正常情况下,是这么使用的。代码如下: // footer footerLayout = new PullLoadingLayout(context, MODE_PULL_DOWN_TO_REFRESH, releaseLa...

2014-09-17 11:09:30

阅读数 7505

评论数 4

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

如果想要把一个Activity变为透明,只需设置一个相应的style即可。下面的style可以满足需求。 <resources> <style name="translucent"> <item name="android:win...

2014-09-15 15:26:29

阅读数 1937

评论数 1

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

首先,需要知道的是,View是可以延伸到屏幕之外的,可以想象一下ListVIew或GridView。也就是说View的尺寸可以超过屏幕的尺寸。View的大小就是onDraw()中Canvas画布的大小。Canvas可以做translate()、clipRec()t等变换,可以说Canvas是无边界...

2014-09-12 13:27:10

阅读数 15798

评论数 5

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

通常,app中的数据都是以ListView的形式展示的。默认地,把“新”数据添加到数据列表的尾部。 但是,如果是IM类型的app,比如查看历史消息这个模块。新数据并不是插到数据列表的尾部,而是插到数据列表的头部。 要实现比较好的用户体验,需要保持当前的ListView的位置。换句话说,如果我们...

2014-09-10 16:55:41

阅读数 55062

评论数 3

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

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

2014-09-10 00:19:56

阅读数 32610

评论数 25

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

当自定义View的时候,可以利用Canvas给View添加一些动画效果。 下面的例子,是在屏幕上绘制一个红色的小方块,这个小方块会在屏幕上面“乱跳”。 知识点 使用到的知识点: (1) 在View的子类的draw()中调用invalidate(),可以让View对象一直保持重绘状态,从而可以使C...

2014-09-08 13:15:12

阅读数 3349

评论数 0

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

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

2014-09-07 12:57:27

阅读数 3984

评论数 0

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

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

2014-09-05 00:14:02

阅读数 10076

评论数 9

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

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

2014-09-04 00:24:49

阅读数 8027

评论数 30

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

混合使用weightSum和layout_weight 先看效果,button占据屏幕宽度的一半。 再看开发文档中的描述。 “定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定子视图的layout_wei...

2014-09-01 01:31:21

阅读数 15945

评论数 7

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

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

2014-08-31 22:40:40

阅读数 10822

评论数 9

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

Android是一个多用户,多任务的系统。 允许多个app在同一时刻执行,在多个程序之间切换并不会有明显的延迟。 多任务是由Linux内核负责处理的,而程序的运行基于Linux进程。 Linux进程 Linux为每一个用户分配一个唯一的用户ID(User ID),用于区分不同的User。 ...

2014-08-13 10:13:17

阅读数 2496

评论数 8

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

写在前面的话 如果对Android开发还不是特别了解的同学,可以参考我之前翻译的Android开发教程。 http://blog.csdn.net/column/details/development4android.html 软件栈 The software stack in Androi...

2014-08-10 12:46:11

阅读数 3048

评论数 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)往版...

2014-07-26 11:23:04

阅读数 1963

评论数 0

【环境配置】配置AndroidStudio

1. 构建新项目,gradle下载不成功的问题。 创建新项目的时候,提示一直下载gradle,但是无法下载成功。 1)首先,去gradle的官网下载压缩包。 http://www.gradle.org/downloads gradle-1.12-all.zip 2)把下载好的gradle...

2014-07-18 16:42:05

阅读数 81601

评论数 0

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