android
文章平均质量分 73
knight_yzzz
专注于android的爱好者
展开
-
java 反射
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class DirectPropertyAccessor { /** * @param args * @throws Securi原创 2012-10-28 11:35:48 · 414 阅读 · 0 评论 -
java 代理
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; import java.lang.reflect.Method; //抽象角色:java动态代理的实现目前只支持接口,不支持抽象类 interface BusinessFoo {原创 2012-10-28 11:38:01 · 394 阅读 · 0 评论 -
Get和post 区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。转载 2012-11-21 23:26:16 · 155 阅读 · 0 评论 -
java net
package test;import java.io.IOException;import java.net.*;import java.util.*;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class socket {转载 2013-01-24 11:05:21 · 145 阅读 · 0 评论 -
android http 连接
URL url = new URL("http://www.51cto.com/index.jsp?par=123456"); HttpURLConnection urlConn=(HttpURLConnection)url.openConnection(); //设置输入和输出流 urlConn.setDoOutput(true); urlConn.setDoInput(true); /转载 2013-03-03 14:33:03 · 456 阅读 · 0 评论 -
android init.rc
init.rc由许多的Action和Service组成。每一个语句占据一行,并且各个关键字被空格分开.由 # (前面允许有空格)开始的行都是注释行(comment)一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明。在第一个段之前的 commands 或 options 都会被忽略每一个actions 和 se转载 2013-03-02 17:34:14 · 486 阅读 · 0 评论 -
Android深入浅出之Binder机制
一说明Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l ServiceManager,这是Android OS的整个服务的管理程序l转载 2013-03-03 00:13:31 · 389 阅读 · 0 评论 -
binder中的mmap
struct binder_state{ int fd; void *mapped; unsigned mapsize;};struct binder_state *binder_open(unsigned mapsize){ struct binder_state *bs; bs = malloc(sizeof(*bs));转载 2013-03-10 12:40:49 · 936 阅读 · 0 评论 -
JAVA NET
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException;public class client {/**原创 2013-03-03 14:51:32 · 309 阅读 · 0 评论 -
Android Makefile 文件讲解
android编译系统的makefile文件Android.mk写法如下(1) Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,宏函数“my-dir”右编译系统提供的,用于返回当前路径。所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOC转载 2013-03-01 23:37:36 · 10154 阅读 · 0 评论 -
context 解释
Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onC原创 2013-04-04 10:33:36 · 682 阅读 · 0 评论 -
android 启动学习
init进程 读取init.rc 启动servicemanager作为binder的守护进程。还会启动Zygote孵化进程,调用的是app_main.cpp中的main()方法,继续调用androidRuntime.cpp,在androidRuntim类的start()方法中启动虚拟机,注册一些JNI调用。通过JNI调用ZygoteInit.java孵化器的初始化 ,在ZygoteIn转载 2013-05-18 17:02:59 · 614 阅读 · 0 评论 -
JNI学习(1)
使用NDK编程的好处:1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用Windows上使用NDK编程的一般步骤1,在应用中加入库 static { Syste原创 2013-05-18 13:50:22 · 878 阅读 · 0 评论 -
jvm 一点学习
首先,提问:c++与java区别在哪? 从底层看,c++编译生成汇编代码,与相关硬件平台有关系。而java编译生成的class,即字节码。运行在jvm虚拟机之上,被jvm所识别。jvm提供一种抽象,一种系统的仿真。一种隔离。注意:jvm只提供一个进程的仿真。静态库与动态库的区别:.a 与.so ,.a在编译,连接时加载。而.so在运行时加载,当一个进程运行时出错,或者没有跑起来,有必要查看原创 2013-05-18 17:12:52 · 623 阅读 · 0 评论 -
JNI api
#include #include /* This is a trivial JNI example where we use a native method * to return a new VM String. See the corresponding Java source * file located at: * * apps/samples/hello-j转载 2013-05-19 09:33:31 · 935 阅读 · 0 评论 -
一些android 总结
binder:http://blog.chinaunix.net/uid-26669815-id-3066558.htmlhttp://www.cnblogs.com/innost/archive/2011/01/09/1931456.html原创 2013-05-19 14:07:20 · 475 阅读 · 0 评论 -
android binder机制
在前面一篇文章浅谈ServiceManager成为Android进程间通信(IPC)机制Binder守护进程之路中,介绍了Service Manager是如何成为Binder机制的守护进程的。既然作为守护进程,Service Manager的职责当然就是为Server和Client服务了。这里的Server和Client通常是两个进程,它们都有自己的线程池,用于处理到来的IPC以及执行进程转载 2013-05-19 14:00:00 · 548 阅读 · 0 评论 -
个人对binder的学习
class IInterface : public virtual RefBase{public: IInterface(); sp asBinder();IBinder是远程对象的基本接口 sp asBinder() const; protected:原创 2013-05-26 19:47:42 · 728 阅读 · 0 评论 -
stagefright in android
1.Video Playback的流程在Android上,预设的多媒体框架(multimedia framework)是OpenCORE。OpenCORE的优点是兼顾了跨平台的移植性,而且已经过多方验证,所以相对来说较為稳定;但是其缺点是过於庞大复杂,需要耗费相当多的时间去维护。从Android 2.0开始,Google引进了架构稍為简洁的Stagefright,并且有逐渐取代OpenCORE转载 2013-06-06 14:01:22 · 1095 阅读 · 0 评论 -
android 小结
Android学习心得和小总结最近学习的一些小知识进行一下小总结:1.1 surface的使用使用surface时,包含了三个类的使用,分别是surface,surfaceView,SurfaceHolder.(1)Sueface类:每一个surface在系统内部都对应了一段单独的视频缓冲区,surface就是这段缓冲区的一个类描述,可以通过surface提供的方法直接给这段缓冲转载 2013-06-06 20:27:13 · 830 阅读 · 0 评论 -
android 视频框架
由于stagefright和openmax运行在两个不同的进程上,所以他们之间的通讯要经过openBinder进行处理,对openBinder这一块还没有了解,所以恕stagefright和openmax之间的通信不能做分析,还有就是本小结不考虑音频这一块,假设视频为MP4封装的AVC编码文件.最早看的是opencore,但opencore兼顾了多平台的移植性而过于复杂,后来就改看stag转载 2013-06-06 19:50:25 · 9707 阅读 · 1 评论 -
binder理解
IPC框架分析 Binder,Service,Service manager 我首先从宏观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPC。Bind转载 2013-06-06 20:16:29 · 907 阅读 · 0 评论 -
android启动
Android启动流程需要处理关键进程的启动,java世界的生成,各种服务的注册加载,还是比较复杂的。在实际应用中,我们常会遇到诸如,开机启动不了,启动时间过长,应用莫名崩溃的问题。分析启动流程,可以帮助我们快速定位这些问题,找到解决问题的思路。二, Init 进程1. init简介Init进程是Android在用户空间的第一个进程,总的来说,它会解析init.rc配置文件,以及和机器转载 2013-06-06 20:30:59 · 1117 阅读 · 0 评论 -
android 底层讲解
Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了,驱动程序的功能主要是向上层提供访问设备的寄存器的值,包括读和写。这里,提供了三种访问设备寄存器的方法,一是通过proc文件系统来访问,二是通过传统的设备文件的方法来访问,三是通过dev转载 2013-06-16 20:52:01 · 752 阅读 · 0 评论 -
andorid sp
template class ANDROID_API Singleton 模板单例类{public: static TYPE& getInstance() {//static 构成单例类很重要 Mutex::Autolock _l(sLock); TYPE* instance = sInstance; if (inst转载 2013-06-16 22:31:41 · 630 阅读 · 0 评论 -
android mediaplayer 1
启动一个服务的方法:1: startService(new Intent(this,MusicPlayerService.class));2:bindService(new Intent(this,MusicPlayerService.class), mPlaybackConnection, Context.BIND_AUTO_CREATE);注意它的第二个参数:ServiceCo原创 2013-06-06 22:19:52 · 804 阅读 · 0 评论 -
android makefile补充
Introduction:Android.mk编译文件是用来向AndroidNDK描述你的C,C++源代码文件的,这篇文档描述了它的语法。在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色和用途。 一、概述 一个Android.mkfile用来向编译系统描述你的源代码。具体来说:(1)该文件是GNU Makefile的一小部分,会原创 2013-06-07 22:13:10 · 558 阅读 · 0 评论 -
android 中实时显示
使用handler 实时更新。Handler为android系统的线程通信工具,承担着主线程与分线程,分线程之间的通信功能,经常用到的有post(),sendMessage() 方法,前者是将一个线程加入线程队列,后者是发送一个消息到消息队列中,post方法还有两个变种,分别为定时发送postAtTime()和延时发送postDelayed()。计时功能的实现主要利用了postDelaye原创 2013-07-01 10:26:05 · 892 阅读 · 0 评论 -
java Synchronized 异步互斥详解
在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。 在程序中我们使用了一个简化版本的Account类,代表了一个银行账户的信息。在主程序中我们转载 2013-07-08 22:35:01 · 6779 阅读 · 0 评论 -
AsyncTask 详解
android 编程原则://必须遵守单线程模型的原则://1. 不要阻塞UI线程 // 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,// 如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理。所以主线程通常又被叫做UI线程。// 2. 确保只在UI转载 2013-07-07 22:42:18 · 797 阅读 · 0 评论 -
java匿名内部类
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示: new 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它的主体可转载 2013-06-27 22:34:01 · 567 阅读 · 0 评论 -
JNI
在如下情况下,需 要在本地方法中应用java对象的引用,就会用到类型之间的转换:1)java方法里面将参数传入本地方法;例如:从java程序中传过去的String对象在本地方法中对应的是jstring类型,jstring类型和c中的char*不同,所以如果你直接当做 char*使用的话,就会出错。因此在使用之前需要将jstring转换成为c/c++中的char*,JNI中:将jstri原创 2013-06-27 19:55:29 · 586 阅读 · 0 评论 -
java 线程运行等级
下面为线程中的7中非常重要的状态:(有的书上也只有认为前五种状态:而将“锁池”和“等待队列”都看成是“阻塞”状态的特殊情况:这种认识也是正确的,但是将“锁池”和“等待队列”单独分离出来有利于对程序的理解). 注意:图中标记依次为①输入完毕;②wake up③t1退出⑴如等待输入(输入设备进行处理,而CUP不处理),则放入阻塞,直到输入完毕。⑵线程休眠sleep()⑶t1.j原创 2013-07-14 19:57:02 · 1071 阅读 · 0 评论 -
java object 类
JAVA中有一个特殊的类: Object。它是JAVA体系中所有类的父类(直接父类或者间接父类)。 此类中的方法可以使所的类均继承。 以下介绍的三种方法属于Object:(1) finalize方法:当一个对象被垃圾回收的时候调用的方法。(2) toString():是利用字符串来表示对象。当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。转载 2013-07-14 23:28:24 · 502 阅读 · 0 评论 -
一些学习连接
http://blog.csdn.net/column/details/androidluo.html 老罗的Android之旅 http://www.chinavideo.org/archiver/ 视频技术论坛's Archiverhttp://www.cnblogs.com/s7vens/category/338830.html linux 网络编程http://原创 2013-07-14 00:11:43 · 523 阅读 · 0 评论 -
什么是Dalvik虚拟机
什么是Dalvik虚拟机? Google于2007年底正式发布了Android SDK,作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,转载 2013-07-14 00:55:29 · 567 阅读 · 0 评论 -
Android之Service与IntentService的比较
耗时的工作在应该放在单独的线程中做,避免用户界面阻塞。例如:文件I/O,网络访问。service在后台运行,不是一个独立的进程,也不是一个独立的线程。它存在于应用程序进程的主线程中。如果需要service做一些例如处理网络连接等耗时操作,应该放到一个单独线程中。所以启动服务,中止进程,服务会停止。启动服务,不用多线程,界面将会阻塞。一旦启动,即使启动它的对象销毁了,仍然在运行。只启动,不返原创 2013-06-27 23:43:29 · 540 阅读 · 0 评论 -
Surfaceflinger 一点解释
Android中的图形系统采用Client/Server架构。Server (即SurfaceFlinger)主要由c++代码编写而成。Client端代码分为两部分,一部分是由Java提供的供应用使用的api,另一部分则是由c++写成的底层实现。下图概要介绍了android图形系统的架构以及使用到的主要组件。Android图形系统中一个重要的概念和线索是surface。View及其子类转载 2013-07-18 11:44:55 · 1356 阅读 · 0 评论 -
蓝牙编程
蓝牙通讯;与LAN一样,通过MAC地址来识别远程设备,通过蓝牙串口协议(SPP)建立端口后以输入输出方式通讯,与socket通讯类似。关键代码在于:将建立,连接好的socket传入线程中,利用新开启的线程发送接收数据。 private static Context context; private BluetoothAdapter m_bluetoothadapter; priva转载 2013-07-19 00:04:52 · 831 阅读 · 0 评论 -
audio
audiodec_init中:1,adec_message_pool_init ,2,pthread_create(&tid, NULL, (void *)adec_armdec_loop, (void *)audec);3, int RegisterDecode(aml_audio_dec_t *audec,int type){ switch(type) {原创 2013-07-29 20:45:13 · 135 阅读 · 0 评论