
Android
文章平均质量分 72
cs_lht
Working on application development for windows mobile and android platform.
展开
-
Android JNI 系列 四
●编码签名BbyteCcharDdoubleFfloatJlongLclassname;类的类型SshortVvoidZbooleanIint例如:void Employee(java.lang.String, do原创 2012-12-18 17:51:31 · 1120 阅读 · 0 评论 -
UI效果
自定义类似QuickContact的Viewhttp://blog.youkuaiyun.com/hosterzhu/article/details/6223558转载 2013-03-13 15:52:38 · 713 阅读 · 0 评论 -
解决Scrollview冲突
http://www.2cto.com/kf/201210/159540.html转载 2013-01-10 13:46:24 · 738 阅读 · 0 评论 -
android JNI 系列 二
主题:●Java和JNI之间的数据对应关系●数组操作●相关数据处理函数,如字符串的创建,运算,转换 1. Java和JNI之间的数据对应关系很多人都很疑惑为什么要定义数的数据类型呢,为什么不延用Java中的定义呢,有这个疑惑的童鞋是平时没有注意数据类型大小的定义,Android这么做目的是因为Java中的基本数据类型的字节长度,并不是根据cpu的运算能力来定义的,如in原创 2012-12-18 16:29:03 · 2404 阅读 · 0 评论 -
android JNI 系列 三
主题:● 获取Java类● 访问Java属性●访问Java方法●创建Java对象●抛异常 1. 获取Java类 方法一: jclass clazz = env->GetObjectClass(thisObj); 方法二: jclass cls = env->FindClass("com/lht/JNITest");以上方法是先原创 2012-12-18 17:29:53 · 6190 阅读 · 1 评论 -
Sensor框架理解
在这个系列的文章我们只是为了讲清楚Sensor框架的设计和工作原理基于4.0,4.0以下的代码有所区别,尤其是2.2以下根本就没有Binder架构,不讲驱动,也不讲具体的某一个应用该怎么处理Sensor的数据。一、整体的架构:从这个图来看Sensor的架构还是非常的清淅,黄色部分表示硬件,它要挂在I2C总线上红色部分表示驱动,把驱动注册到Kernel的Input Subsyst原创 2012-11-12 11:11:01 · 34136 阅读 · 10 评论 -
Binder学习之startThreadPool,joinThreadPool
我们先不去分析ServiceManager的服务端,也先不忙分析Drvier部分,我们先把ServiceManager客户端的工作分析完。接上一篇:http://blog.youkuaiyun.com/cs_lht/article/details/8171373我们先来看看startThreadPoolProcessState::self()->startThreadPool();只要前面的理原创 2012-11-11 21:13:20 · 16174 阅读 · 2 评论 -
Binder学习之addService
接上一篇:http://blog.youkuaiyun.com/cs_lht/article/details/8160968我们看一下MediaPlayerService是如何把自已添加到ServiceManager中的。代码路径:framework/base/media/libmediaplayerservice/MediaPlayerService.cppvoid MediaPla原创 2012-11-11 15:59:59 · 5560 阅读 · 0 评论 -
Binder学习之获取ServiceManager对象
我们还是以Main_MediaServer.cpp为切入点。int main(int argc, char** argv){ sp proc(ProcessState::self()); sp sm = defaultServiceManager(); LOGI("ServiceManager: %p", sm.get()); waitBeforeAdding原创 2012-11-08 12:33:59 · 2403 阅读 · 0 评论 -
Loader介绍
Loader是一个Android上的异步加载方案。它只能实现在Activity和Fragment。你需要实现LoaderManager.LoaderCallbacks。 而实现这个接口,必须实现三个虚函数:public Loader onCreateLoader(int id, Bundle args);public void onLoadFinished(Loader l原创 2012-11-01 17:22:35 · 3519 阅读 · 0 评论 -
地区以及语言缩写
国家与地区缩写---------------------------------------------------------------------------------------------英文 中文 域名缩写 电话代码 Angola 安哥拉 AO 244 Afghanistan 阿富汗 AF 93 Albania 阿尔巴尼亚 A转载 2012-08-14 10:44:46 · 9194 阅读 · 0 评论 -
android 添加es_MX
1.在external/icu4c/data/locales/底下新增es_MX.txt ()内容如下:es_MX{ Currencies{ MXN{ "$", "peso mexicano", } } NumberElements{ ".",转载 2012-04-17 16:15:26 · 2452 阅读 · 1 评论 -
Traceview
TraceView能实现的功能:1. 每个线程所用的时间2. 线程每个方法所用的时间,CPU占用率3. 函数的调用关系 基本的介绍和使用请参考如下:http://developer.android.com/tools/debugging/debugging-tracing.html (官方文档)http://blog.youkuaiyun.com/topgun38/article/原创 2013-04-02 12:04:00 · 1569 阅读 · 1 评论 -
StrictMode
可以用来检查内存泄露,主线程的性能http://tech.it168.com/a2011/0908/1243/000001243936_all.shtml转载 2013-04-02 15:32:35 · 671 阅读 · 0 评论 -
MAT
http://blog.youkuaiyun.com/lg707415323/article/details/7749125http://stackoverflow.com/questions/12674484/how-to-find-out-ids-or-names-of-preloaded-system-drawables-bitmaps-from-memory#http://www.blogja转载 2013-04-03 17:15:56 · 708 阅读 · 0 评论 -
Android中LocalSocket使用
http://blog.sina.com.cn/s/blog_8e9c63c70101k2eh.html转载 2014-11-27 17:29:49 · 1108 阅读 · 0 评论 -
APK反编译
1. 首先你要准备几个工具:dex2jar-0.0.7.3-SNAPSHOT.zipjd-gui-0.3.3.windows.zipapktool1.3.2.tar.bz2apktool-install-windows-2.1_r01-1.zip2. 解压dex2jar-0.0.7.3-SNAPSHOT.zip3. 用winrar 打开APK文件,拷贝classes.dex到dex2jar-0.0.7.3-SNAPSHOT.zip的解压目录4. 打开cmd窗口,进入dex2jar-0.0.7.3-SNAPS原创 2011-01-24 13:54:00 · 1176 阅读 · 0 评论 -
android JNI 系列 一
本文介绍一下用ndk实现jni的方式。 静态注册函数1. 下载linux版的ndk,windows配环境好像有点麻烦,所以就不说了 2. 配置NDK环境变量:a.sudo gedit ~/.bashrcb.在文件中输入如下的内容:NDKROOT=/home/username/android/ndk/android-ndk-r8export NDKROOT; c.原创 2011-04-16 01:21:00 · 1429 阅读 · 0 评论 -
Android内存
一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。 如果在Linux下运行adb logcat命令,可以看到如下的输出: D/dalvikvm( 745): GC_CONCURRENT freed 199K, 53% free转载 2014-08-20 14:43:25 · 850 阅读 · 0 评论 -
开源项目
http://www.youkuaiyun.com/article/2013-05-03/2815127-Android-open-source-projects原创 2013-05-22 12:54:28 · 786 阅读 · 0 评论 -
ActionBar和Fragment结合ViewPager实现TabActivity
这儿直接写实现步骤了,至于ActionBar, Fragment, ViewPager相关的基础知识就不在这儿讲了,这篇文章讲的不错:http://blog.sina.com.cn/s/blog_5d6ee3360100r1my.html 开始实现创建FragmentActivity,总的代码如下:package com.example.fragmenttest;impor原创 2012-10-19 17:23:15 · 26768 阅读 · 23 评论 -
layout_weight
http://www.cnblogs.com/angeldevil/archive/2012/04/08/2437747.html转载 2013-06-27 17:37:24 · 641 阅读 · 0 评论 -
Android Animation
http://blog.youkuaiyun.com/ritterliu/article/details/7513822原创 2013-07-08 15:43:16 · 788 阅读 · 0 评论 -
自定Action Bar Style
@drawable/ad_selectable_background @style/MyPopupMenu @style/MyDropDownListView @style/MyActionBarTabStyle @style/MyDropDownNav @drawable/ad_btn_check_holo_light @d原创 2013-06-03 20:47:15 · 5163 阅读 · 0 评论 -
自定义MULTIPLE ListView
我们知道Android自带的multiple listview的实现是通过checkedTextView来实现的,但是这个控件很难看,而且一行内容布局固定。 以下我们自定义一个: mListView = (ListView)findViewById(R.id.listview); mListView.setCacheColorHint(0); mListView.setIte原创 2013-06-03 18:34:17 · 815 阅读 · 0 评论 -
git 管理本地代码库
新建一个工程文件birl。到/home/git/birl目录下:git --bare init这样,一个“中央控制节点“(显然,这是我胡乱起的名字啦~)就好了。到本地目录下,就可以开始用git开控制代码了。cd ~/tmp/先取出一个工程git clone /home/git/birl birlcd ./birl为远程仓库重新命名,如果你乐意用/home/git/b转载 2013-04-15 18:48:18 · 1211 阅读 · 0 评论 -
程序内存分析
http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813转载 2012-04-12 14:30:15 · 663 阅读 · 0 评论 -
Java用尾递归遍历目录
public class TraverseFileDirectoryActivity extends Activity { private static final String TRAVERSE_DIRECTORY = "/sdcard/"; private List mFileList = new ArrayList(); /** Called when the acti原创 2012-02-03 13:25:32 · 1602 阅读 · 0 评论 -
Android View onMeasure 方法
Android View onMeasure 方法源自于:http://gundumw100.iteye.com/blog/999767http://developer.android.com/resources/samples/ApiDemos/src/com/example原创 2011-07-20 11:41:06 · 958 阅读 · 0 评论 -
分析图库
- Java4Less (http://java4less.com/charts/chart.php?info=android) - Chart4J (http://code.google.com/p/charts4j/) - BlueChart (http://转载 2011-07-19 13:58:56 · 562 阅读 · 0 评论 -
Android 消息处理机制
一、 角色描述1.Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。2.Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper(从Message Queue取出)所送来的消息。3. Message Queue(消息队列):用来存放线程放入的消息。4.线转载 2010-05-19 11:31:00 · 1283 阅读 · 0 评论 -
Activity Affinity and task
源文链接:http://appmem.com/archives/405 本文参考了官方Dev Guide文档,简单介绍Android下的affinities和任务(task)。 1、Activity和Task task就好像是能包含很多activity的栈。 默认情况下,一个ac转载 2011-07-15 14:35:24 · 927 阅读 · 0 评论 -
Android获得位置信息(GPS+wifi/基站)
在开发一些与定位有关的程序的时候,经常需要获得设备的Location,获取设备的Location的方法如下:1.创建一个LocationListener接口的实现类,可以使用匿名类,代码如下:Java代码 public final LocationListener mLocationListener01 = new LocationListener(转载 2011-06-17 13:52:00 · 4362 阅读 · 1 评论 -
Java5线程池潜规则研究
<br />1. 线程池的原理和实现方法介绍,还是很详细的:<br />https://www.ibm.com/developerworks/cn/java/j-jtp0730/<br /> <br />2. Java线程池的介绍<br />www.ibm.com/developerworks/cn/java/j-jtp0730<br /> <br />3. Java线程池的实例:<br /> <br />import java.util.concurrent.ExecutorService; <br转载 2011-03-18 09:39:00 · 950 阅读 · 0 评论 -
理解 Android 本地数据存储 API
<br />理解 Android 本地数据存储 API<br />http://www.ibm.com/developerworks/cn/xml/x-androidstorage/index.html?ca=drs-<br /> <br /> <br />http://www.cnblogs.com/king_dy/archive/2010/11/18/1888133.html转载 2011-01-21 22:36:00 · 638 阅读 · 0 评论 -
用Ant编译Android项目工程
1. 安装Ant从http://ant.apache.org/index.html下载,然后解压到任意的盘符,如:D:/Apache_Ant2. 配置Ant环境变量ANT_HOME D:/Apache_AntPath 中加入 D:/Apache_Ant/bin3. 测试配置结果是否正确:正确的会出现"Build failed"4. 命令行下创建Android新工程Windows下① 启动命令行② 进入到Android SDK 下tools目录中cd E:/Mobile_DEV/Android_SDK1.5/原创 2010-11-22 22:02:00 · 2829 阅读 · 0 评论 -
Android Timer
Timer 跟线程的安全有关,所以我们要用Handler来处理: 代码如下:(此Demo主要是演示camera的self Timer 的功能) package com.example.mytimer; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import原创 2010-05-21 09:45:00 · 1897 阅读 · 1 评论 -
Android Intent
1. Flag 指定一个Flag表明了如何处理当前的Intent, 如FLAG_ACTIVITY_* 一般用于Context.startActivity, 而FLAG_RECEIVER_* 都是用去sendBrodcast(). Android provided flag: FLAG_GRANT_READ_URI_PERMISSION FLAG_GRANT_WRITE_URI_原创 2010-05-21 09:35:00 · 2453 阅读 · 1 评论 -
Android service
1. 定义自已的service: public class myService extends Service{ MediaPlayer player; @Override public IBinder onBind (Intent intent){ return null; } @Overri原创 2010-05-19 16:31:00 · 795 阅读 · 0 评论 -
Android BroadCast
1. 自定义自已的Broadcast receiver: public class myReceiver extends BroadcastReceiver{ @Override public void onReceive (Context context, Intent intent) { if (intent.getAction().equa原创 2010-05-19 09:39:00 · 9486 阅读 · 0 评论