Android
文章平均质量分 85
zhandoushi1982
这个作者很懒,什么都没留下…
展开
-
android投屏和媒体共享相关 && audio focus机制相关 && AudioTrack使用方法
Android屏幕投影及反向控制原理:https://www.jianshu.com/p/279682621a01Android之间互相的投屏直播 --点对点传输:https://www.2cto.com/kf/201711/701821.html在android系统中开发DLNA:https://blog.csdn.net/gebitan505/article/details...转载 2018-04-01 12:50:38 · 3211 阅读 · 0 评论 -
android的广播broadcast和receiver && 广播接收器优先级的深入分析
(1)基础概念 广播发送者:通常广播发送方就是调用Context.sendBroadcast()的程序,而广播接收者就是继承BroadcastReceiver的程序。广播发送分两种:A,无序广播:发送方发出后,几乎同时到达多个广播接收者处,并且无法终止广播继续传播,使用Context.sendBroadcast(intent);B,有序广播:广播接收者需要提前设置优先级,优转载 2013-01-30 23:14:17 · 36968 阅读 · 7 评论 -
AndroidManifest.xml 文件之详细解析 && meta-data的使用
AndroidManifest.xml是每个android程序中必须的文件。它位于工程的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位置和时间转载 2010-04-01 21:08:00 · 6646 阅读 · 1 评论 -
Android APK反编译 && 编译时自动拷贝文件和文件夹到out目录
网上各种各样的APK,如果能了解其实现细节,对于学习、借鉴是个很好的推动。利用现成的APK反编译包,可以实现这个目的。(1)命令方式反编译Apk得到Java源代码 下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。apk反编译工具dex2jar,是将apk中的classes.dex转化成j转载 2012-10-20 00:19:51 · 4233 阅读 · 0 评论 -
不同手机在豌豆夹上显示设备同名的解决方法 && Android 获取USB设备的类型 && Android USB Host开发
开发中,会碰到两个不同但类似的机型在豌豆夹里面被识别为同一个机型,比如XT810和MT810都被豌豆夹识别为XT810,那做MT810的工程师就比较郁闷,因为不同的机型需要区别对待。由于豌豆夹是根据设备的PID和VID来识别,所以我们需要修改手机的PID和VID。 这个需求涉及到PC 端android ADB driver和工程代码中ALPS 两部分的修改。(1)Androi原创 2012-01-07 00:22:41 · 9337 阅读 · 12 评论 -
Android手机虚拟CD-ROM流程 && 使用网络同步时间(NITZ和NTP)&& Android VOLD
很多时候,我们将手机接入电脑后,会发现一个CR-ROM光驱类似的盘符,里面有手机附带的内容。做法是这样的:(1)增加手机分区通过调整bootloader(传参给kernel)或kernel的mtd partition table。增加一个分区,专门存放CDROM镜像。(2)制作CDROM镜像并烧写到该分区将光驱的内容拷贝入一个linux目录,用mkisofs -r -o cdrom原创 2012-03-07 15:12:21 · 9794 阅读 · 1 评论 -
Android Accessibility && Parcel和AIDL && Intent传递对象的两种方法(Serializable,Parcelable)
许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。这包括了有些用户由于视力上,身体上,年龄上的问题致使他们不能看完整的屏幕或者使用触屏,也包括了无法很好接收到语音信息和提示的听力能力比较弱的用户。Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音(这个不支持中文),触觉反馈,手势操作,轨迹球和手柄操作。 A转载 2014-03-09 23:29:56 · 4610 阅读 · 0 评论 -
java Socket简单用法 && Android使用socket使底层和framework通信
Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示。值得一提的是,Java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用起来很方便!转载 2014-04-24 17:54:27 · 2106 阅读 · 0 评论 -
用onConfigurationChanged监控横竖屏改变 && 用Notification在状态栏提示图标
可以通过做一个apk程序,在程序中加一个TextView控件。当手机(平板)横屏时提示系统处于landscape,竖屏时提示处于portrait。这样可以用来检测系统认为的方向跟设备真实的方向是否一致。步骤如下:(1)XML中添加权限(2)在XML中的activity属性中添加事件响应类型<activity ... android:configChanges="or转载 2013-01-13 21:11:21 · 4740 阅读 · 0 评论 -
Eclipse的常见使用错误及编译错误 && 插件
(1)导入工程时出现:Error generating final archive: Debug Certificate 这样的编译错误是由于新版的Android SDK调试key有1年的试用期限制,如果当年电脑的Android SDK安装了一年后会出现这样的问题,解决的方法只需要删除早期的key文件即可,系统默认的key文件在Eclipse的Window菜单的Preferenc转载 2012-10-08 17:48:07 · 27029 阅读 · 2 评论 -
Android中的lcd_density && 在应用源码中设置横竖屏和取消横竖屏 && layout文件10dip的意义
一款LCD屏幕,它的density密度是有其工艺决定好的,但是在软件中我们可以进行修正以满足要求。对于HVGA屏,设置ro.sf.lcd_density=160,对于WVGA屏,设置ro.sf.lcd_density=240。来到相关的源码部分,Density获取的部分在DisplayMetrics.java(frameworks\base\core\java\android\util)这个类里面原创 2012-11-14 17:53:48 · 16555 阅读 · 1 评论 -
用Android UEventObserver监听内核uevent
很多时候我们在框架上层需要知道内核中某些事件的状态,用设备的show属性是可以供上层来查询,但是这需要上层设定一个较耗资源的循环。如果用UEventObserver就可以监听内核event,它是android Java层利用uevent与获取Kernel层状态变化的机制。(1)UEventObserver简介 framework有如下模块使用UEventObserver的功能转载 2013-02-04 17:23:47 · 13652 阅读 · 3 评论 -
android平台上的json解析 && 基站定位原理和GPS定位实例 && android RIL解析
json数据格式解析分为两种:一种是普通的,一种是带有数组形式的。 普通形式的:服务器端返回的json数据格式如下:{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}带数组形式的:服务器端返回的数据格式为:{"calendar":转载 2014-12-17 16:27:47 · 2092 阅读 · 1 评论 -
Android Layout 布局 && CheckBox样例 && View三种属性 && Launcher的几点
一个Android视图有很多控件,用户界面通过View和ViewGroup对象构建,那么怎么来控制它们的位置排列呢?Android布局主要有以下几种:FrameLayout、LinearLayout、RelativeLayout、TableLayout、AbsoluteLayout等,FrameLayout是最简单的Layout,而最后一种AbsoluteLayout是通过指定控件的x/y坐标来定转载 2013-04-14 12:47:42 · 2502 阅读 · 0 评论 -
对话框/进度等待/进度条窗口 && MenuInflater && LayoutInflater && AppWidget
经常会需要一个对话框窗口,以便从用户那里得到确认,这时可以重写在activity中的onCreateDialog方法来显示一个对话框窗口。onCreateDialog是一个创建由activity管理的对话框的回调方法,里面用switch来区分不同的特定对话框;当调用showDialog方法时,将调用这个回调方法。 进度框也多用在各种场合。(1)创建对话框窗口 Ch转载 2014-03-14 17:15:33 · 3198 阅读 · 0 评论 -
android的content provider之一:SharedPreferences && 进程数据共享方法
Shared Preferences类似于我们常用的ini 文件,用来保存应用程序的一些属性设置,在 Android平台常用于存储比较简单的参数设置。例如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。过程是:通过 getPreferences()方法来获得Preferences对象,通过 "SharedPreferences.Editor editor转载 2013-01-28 17:59:19 · 3098 阅读 · 0 评论 -
Android的intent:基础以及显示/隐式使用Intent,SD挂载识别&& 通过intent返回结果
在一个Android应用中,主要是由四种组件组成,包括:activity、intent、service、content provider。这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由Intent协助完成的。 Intent负责对应用中一次操作的动作、动作涉及数据进行描述,Android则根据此Intent转载 2010-04-06 17:00:00 · 2861 阅读 · 0 评论 -
ANR及如何分析解决ANR && 如何分析系统或者应用卡顿问题
(1)什么是ANR ANR:Application Not Responding,即应用无响应(2)ANR的类型 ANR一般有三种类型:a:KeyDispatchTimeout(5 seconds) --主要类型,按键或触摸事件在特定时间内无响应。A key or touch event was not dispatched within th...原创 2014-07-17 16:47:05 · 4749 阅读 · 0 评论 -
Activity生命周期 && Activity开机自启动 && Activity的四种启动模式
1. Boot系统初始化, 具体过程参见(system/core/init/Init.c)中的main函数,这时候,手机或者模拟器出现的画面是一个console,显示“ANDROID”msg。2. 初始化成功后,就开始mounting系统,具体参见(system/core/mountd/Mountd.c)中的main函数。注意: main函数中的configPath要参照实际目录更改。3.转载 2009-11-02 15:46:00 · 3033 阅读 · 0 评论 -
Android实现语音识别 && 讯飞平台语音识别语音播报
Android语音识别,借助于云端技术可以识别用户的语音输入,包括语音控制等技术,下面我们将利用Google提供的Api实现这一功能。功能点为:通过用户语音将用户输入的语音识别出来,并打印在列表上。 首先建立如下的一个activity,并在button下建立一个listview控件(用来回显语言识别到的项目)。 代码如下:package com.example转载 2013-04-21 23:29:47 · 27704 阅读 · 7 评论 -
Android 5.x 权限问题解决方法
(0)关于selinux的基础知识,可以参见http://www.cnblogs.com/shell812/p/6379321.html;TE语言规则,参见http://www.cnblogs.com/shell812/p/6379370.html。ls -Z和ps -Z分别查看系统中object和subject的属性列表,id -Z查看用户信息(1)android 5.x开始,引入了非常严...转载 2017-04-29 11:03:12 · 2206 阅读 · 0 评论 -
Android.mk的用法和基础 && m、mm、mmm编译命令
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。选项参考以下文件:build/core/config.mk,默认的值在以下文件中定义:build/core/base_rules.mk。编译系统为原创 2010-02-22 13:41:00 · 168191 阅读 · 39 评论 -
init进程 && 解析init.rc && init.rc中启动sh文件 && JAVA中跑shell && JAVA中文件和文件夹拷贝
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序。提供了以下的功能:设备管理、解析启动脚本、执行基本的功能、启动各种服务。代码的路径:system/core/init,编译的结果是一个可执行文件:init。这个init 的可执行文件是系统运行的第一个用户空间的程序,它以守护进程的方式运行。启动脚本则就是下面要讲的Init.rc。=================原创 2010-07-26 23:49:00 · 23361 阅读 · 4 评论 -
预置app/apk到系统 && 预置so库进系统 && 预置普通文件和文件夹进系统
Android的本地实现层次具有基本的库和程序。这些库和程序是Android基本系统运行的基础。主要包含了以下的内容:C语言底层库libcutils、Init进程、Shell工具、C++工具库libutils。 Android的源代码结构分为三部分:(1)核心工程:是建立android系统的基础,在根目录下的若干文件夹。 bionic:提供C/C++标准库的功能,它原创 2009-10-18 22:44:00 · 9253 阅读 · 1 评论 -
支持多语言 && 支持多分辨率layout && 支持多分辨率图标 && appcompat v7报错
(1)安装JDK。从SUN官方网站下载,按照默认选项安装即可。我安装的是JDK1.6,安装完成后在CMD中打入java -version会显示JAVA版本信息,以此来验证是否成功。(2)安装eclipse。该软件下载后不需安装,解压缩即可使用,第一次启动时会要求选择工作目录。win7上选择的最新ECLIPSE文件下载路径是:http://www.eclipse.org/downloads/do原创 2009-10-27 12:42:00 · 8993 阅读 · 3 评论 -
Android的休眠与唤醒 && Android关机或重启的几种实现方式 && Lowmemory Killer简介
Android 休眠(suspend),在一个打过android补丁的内核中,state_store()函数会走另外一条路,会进入到request_suspend_state()中,这个文件在earlysuspend.c中。这些功能都是android系统加的,后面会对earlysuspend和late resume 进行介绍。涉及到的文件:linux_source/kernel/power/m转载 2010-07-25 22:55:00 · 23661 阅读 · 0 评论 -
adb和aapt
(1)adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作:1、快速更新设备或手机模拟器中的软件,如应用或Android系统升级(类似于MS的active sync);2、在设备上运行shell命令(必须装设备驱动,如果不装对应的设备驱动,adb是不识别的);3、管理设备或手机模拟器上的预...原创 2009-11-10 23:55:00 · 14099 阅读 · 0 评论 -
安卓驱动模块给APP访问 添加&& Android平台通过jni读写i2c设备
NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +。Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用转载 2014-11-04 12:04:56 · 2746 阅读 · 0 评论 -
JNI demo手把手 && JNINativeMethod的参数解析 && JNI使用中的报错
(1)JNI工程建立 在Android目录下任意创建一个目录jnidemo,并在该目录下创建三个文件:Android.mk,用于编译JNI工程的makefile文件;jnidemo.cpp,JNI代码文件;onload.cpp,用于注册JNI方法的文件。mkdir jnidemocd jnidemotouch Android.mktouch jnidemo.cpp转载 2014-01-04 11:26:03 · 7521 阅读 · 0 评论 -
BootChart在Android中的应用 && 签名工具SignApk.jar使用 && shareduserid的使用
bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。android中有集成bootchart源码,路径为system/core/init/bootchart.c。(1)在android源码system/core/init/目录执行: mm INIT_BOOTCHART=tru转载 2016-04-11 12:15:53 · 1944 阅读 · 0 评论 -
获取内外部存储参数以及写文件到外部存储器 && 如何决定一个apk的安装位置 && APK安装过程及原理详解
获取android文件系统的信息,需要Environment类和StatFs类的支持。(1)Environment 是一个提供访问环境变量的类,常用的方法有: A,getDataDirectory() ,返回File ,获取Android 数据目录。 B,getDownloadCacheDirectory(),返回File ,获取Android 下载/缓存内容目转载 2013-01-31 17:11:32 · 28901 阅读 · 1 评论 -
Android的Service && service 的开机自启动 && service被杀死后自启动 && service中动态定义receiver
Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。(1)使用context.startService() 启动Service是会经历:context.startSer转载 2013-01-11 10:17:13 · 17145 阅读 · 2 评论 -
安卓Systemproperties的读写 && Android平台LOG输出规范 && Log写入文件 && 将异常(getStackTrace)转化成String
简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//system/目录下。在Android运行时可以通过property_get()[c/c++域] / SystemProperties_get*转载 2012-03-21 16:11:59 · 28967 阅读 · 10 评论 -
DOM解析XML,及Android应用联网升级 && android断点续传
在网上看到一篇关于apk联网升级的博文,讲解的比较细致入理,遂录在这里备用。流程图是: 要实现自动更新,我们首先必须让我们的应用知道是否存在新版本的软件,因此我们可以在自己的网站上放置配置文件,存放软件的版本信息。(1)在src同层目录下放置version.xml,内容是: 2 baidu_xinwen_1.1.0 http://转载 2013-05-01 22:55:29 · 1950 阅读 · 0 评论 -
Android RTC浅析和Alarm manager 闹钟开发
MediaPlayer播放音频比较简单,但是要播放视频就需要SurfaceView。SurfaceView比普通的自定义View更有绘图上的优势。转载 2014-07-18 23:06:47 · 5940 阅读 · 0 评论 -
this和super && getApplicationContext/getBaseContext/this等的用法
当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。用法:(1)this(参数):调用本类中另一种形式的构造函数 class Point { private int x,y; public Point(int x,int y原创 2010-04-02 16:20:00 · 1407 阅读 · 0 评论 -
Android事件传递和响应:TP和按键
Android按键事件处理主要在View和Activity两个级别。和Touch事件相比,简单很多。按键事件的处理机制如下:(1)默认情况下,如果没有View获得焦点,事件将传递给Activity处理。(2)如果View获得焦点,事件首先传递到View的回调方法中。view回调方法不处理的话返回false,事件继续传递到Activity处理。反之,事件不会继续传递。PS:使用View.Se转载 2013-04-03 11:51:36 · 4740 阅读 · 0 评论 -
Android跨进程通信的四种方式 && 常用服务(运行包名/网络状态/音频服务/马达服务)&& 快捷开关源码
Context字面意思上下文,位于framework 的android.content.Context中。其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能得到调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替;而到了一个button的onClick(View view)等方法时,我们用this时就转载 2013-01-14 17:16:13 · 5324 阅读 · 0 评论 -
一个测试电池状态的actiivity
如何在一个页面中完整的显示当前电池的状态呢,诸如电压、百分比、电池充电状态等。以下的一个简单程序可达到这个目的。import android.os.BatteryManager;import android.os.Bundle;import android.app.Activity;import android.content.BroadcastReceiver;import转载 2013-09-25 23:23:58 · 1734 阅读 · 0 评论 -
一个测试LCD的activity
在生产安卓设备有时需要用到产生一个纯颜色变换的画面,来测试LCD是否有坏点。一个简单的实例如下,要用到SurfaceView,SurfaceHolder,canvas等图层处理:(1)要import的文件import android.os.Bundle;import android.os.Handler;import android.os.Message;import andr转载 2013-09-19 23:38:36 · 2071 阅读 · 1 评论