android技术
文章平均质量分 92
dxh040431104
这个作者很懒,什么都没留下…
展开
-
分析Android 根文件系统启动过程(init守护进程分析)
在Android系统启动时,内核引导参数上一般都会设置 “init=/init”,这样的话,如果内核成功 挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序 。这个程序所了什么呢? 我们只有RFSC(Readthe Fucking Source code)!! init程序源码在Android官方 源码的system/core/init 中,main在init.c里。我们的分析就从main开始。init: (1)安装SIGCHLD信号 。(如果父进程不等待子进程结束,子进程转载 2010-09-15 18:54:00 · 392 阅读 · 0 评论 -
数据存储之sharePreference
<br /><br />Shared Preferences 类似于winform中做一些小型配置的ini文件,用来保存一些用户设置的参数。例<br /> <br />如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有设置<br /> <br />。<br /> <br />Shared Preferences 处理数据有3种模式 MODE_PRIVATE 是 preferences 的操作模式。这是默认的模<br /> <br />式,代表只有创建这个 prefere原创 2011-01-07 13:34:00 · 10195 阅读 · 0 评论 -
Android学习笔记之mainfest文件中android属性
<br /><br />以前的零散笔记, 共享一下, 有错误的地方还请指正。<br />android:allowTaskReparenting<br />是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。<br />--------------------------------------------------------------------------------------<br />android:alwaysRetainTaskState<br />是否保留状态不转载 2011-01-12 17:36:00 · 567 阅读 · 0 评论 -
TranslateAnimation 一点分析
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)这个是我们最常用的一个构造方法,float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;float toYDelta)这个参数原创 2011-01-10 17:07:00 · 5308 阅读 · 0 评论 -
利用canvas画text时的换行实现
<br /><br />private void drawText(String str,Paint pa,Canvas ca) {<br />float[] widths ;<br />float toalwidth = 0 ;<br />int mTextXPoint = 10 ; //text的起始点X<br />int mTextYPoint = 10 ; //text的起始点Y<br />widths = new float[50];<br />int index = 0;<br />int原创 2011-01-21 16:46:00 · 3809 阅读 · 0 评论 -
adnroid源码mms中composeMessageActivity中创建listview的一些分析
<br />点击conversationList的列表后会调用composeMessageActivity.java 然后初始化一个单个联系人的短信界面。<br />一开始调用onCreate()。通过setContentView(R.layout.compose_message_activity);initResourceRefs(); 加载一些UI界面。<br />在initialize()中初始化一些数据,在initActivityState()中初始化和composeMessageActivity相原创 2011-05-31 09:55:00 · 3213 阅读 · 1 评论 -
获得android模拟器root权限的命令
<br />adb shell<br />mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system原创 2011-04-21 10:01:00 · 1251 阅读 · 0 评论 -
android.resource://这个Uri你知道吗
如何访问平时APK文件Res目录下的内容呢? 如果直接访问Apk下的assets目录可以使用AssetManager类处理,而需要访问 res/raw这样的文件夹怎么办呢? 这里Android123可以告诉大家APK在安装时已经解压缩,部分资源存放在/data/data /package_name/这里, 比如我们想访问res/raw/android123.cwj文件,可以使用android.re转载 2011-06-21 14:47:00 · 1835 阅读 · 0 评论 -
Android获取图片大小以及获取指定大小的缩略图
怎样获取图片的大小?0 }# S! I5 g+ W 思路很简单: 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了。 & V ~" k% W8 }& P Z 新问题又来了,在通过Bi转载 2011-08-07 19:39:46 · 22150 阅读 · 2 评论 -
屏蔽长按menu键弹出的输入键盘
@Override public void onAttachedToWindow(){ this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); }原创 2012-12-13 16:01:18 · 763 阅读 · 0 评论 -
String为什么要设计成不可变的
我觉得就一个主要原因字符串池的需要 字符串池是方法区(Method Area)中的一块特殊的存储区域。当一个字符串已经被创建并且该字符串在 池 中,该字符串的引用会立即返回给变量,而不是重新创建一个字符串再将引用返回给变量。如果字符串不是不可变的,那么改变一个引用(如: string2)的字符串将会导致另一个引用(如: string1)出现脏数据。 网上很多人说是因为多线程时的线程安全,我觉得...原创 2019-06-19 17:29:11 · 127 阅读 · 0 评论 -
由Future, FutureTask,Callable再到AsyncTask
如转载请标明出处:https://blog.csdn.net/dxh040431104/article/details/93329349 Future, FutureTask,Callable网上的说明很多,我这里就不说了,只说一些我的见解 FutureTask是一个实现了Future的Runable,所以它可以直接丢到Thread中使用如 Callable<Integer&g...原创 2019-06-22 15:58:23 · 846 阅读 · 0 评论 -
android局域网通讯框架
该框架是用来实现局域网中多台机器通讯的,基于TCP协议实现了多台C连接一台S,https://github.com/MurrayDu/lan 该框架支持消息失败重复,消息发送成功或失败的返回,支持心跳包,支持服务端断网重连,话不多说直接上图 上图是整个框架的结构图 TcpService是服务端通讯的类,负责监听客户端连接请求,维护客户端列表 Finder是服务端,客户端端搜索的基类 ...原创 2019-06-18 15:13:16 · 815 阅读 · 0 评论 -
JAVA线程池的一些见解
java线程池用法这里就不说了,直接说一些ThreadPoolExecutor的原理。 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2019-06-22 21:55:14 · 159 阅读 · 0 评论 -
android animation
动画效果编程基础--AnimationAndroid 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果转载 2010-11-11 13:53:00 · 467 阅读 · 0 评论 -
Android Launcher 分析
<br />Home screen可以说是一个手机的最重要应用,就像一个门户网站的首页,直接决定了用户的第一印象。下面对home screen做一简要分析。<br /><br /> home screen的代码位于packages/apps/Launcher目录。从文件launcher.xml,workspace_screen.xml可获知home screen的UI结构如下图所示:<br /><br /><br /> 整个homescreen是一个包含三个child view的FrameLayout(转载 2010-11-04 16:45:00 · 726 阅读 · 0 评论 -
可循环显示图像的Android Gallery组件
<br /><br />Gallery组件主要用于横向显示图像列表,不过按常规做法。Gallery组件只能有限地显示指定的图像。也就是说,如果为Gallery组件指定了10张图像,那么当Gallery组件显示到第10张时,就不会再继续显示了。这虽然在大多数时候没有什么关系,但在某些情况下,我们希望图像显示到最后一张时再重第1张开始显示,也就是循环显示。要实现这种风格的Gallery组件,就需要对Gallery的Adapter对象进行一番改进。<br /><br />Gallery组件的传统用法<br /><转载 2010-09-27 11:16:00 · 404 阅读 · 0 评论 -
Android Recovery模式 详细出处参考
Recovery简介Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写Flash分区),copy_dir(复制目录)。该包一般被下载至SDCARD和CACHE分区下。如果对该包内容感兴趣,可以从http://forum转载 2010-09-30 13:47:00 · 951 阅读 · 0 评论 -
如何调试跟踪Android源代码
<br /><br />Android平台代码很多,关系也很复杂,通常我们调试程序的时候是无法跟踪到Android framework code里的,如果能调试跟踪Android source code将给我们这些初学者带来很多便利,本文将给出一个调试跟踪Android source code 的方法。<br /> 1. 首先,得到Android 源代码(可参考之前的文章--如何获取Android源代码并编译.doc),并且编译,得到output file,在(Android source)/out原创 2010-11-30 15:36:00 · 1213 阅读 · 0 评论 -
分析android动画模块
主要思路Tween 动画通过对 View 的内容完成一系列的图形变换 (包括平移、缩放、旋转、改变透明度)来实现动画效果。具体来讲,预先定义一组指令,这些指令指定了图形变换的类型、触发时间、持续时间。这些指令可以是以 XML 文件方式定义,也可以是以源代码方式定义。程序沿着时间线执行这些指令就可以实现动画效果。动画的进度使用 Interpolator 控制,android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如LinearInterpolator 实现了匀速效果、 Accele转载 2010-12-02 16:05:00 · 405 阅读 · 0 评论 -
android事件处理总结--dispatchTouchEvent
从今天解决的一个问题了解到, viewGroup的dispatchTouchEvent方法会在其onInterceptTouchEvent方法之前被触发.又搜了些资料,个人觉得最受用的总结如下:首先触发ACTIVITY的dispatchTouchEvent然后触发ACTIVITY的onUserInteraction然后触发LAYOUT的dispatchTouchEvent然后触发LAYOUT的onInterceptTouchEvent供参考的文章蛮多的,我不再废话了:http://blog.csdn.net转载 2010-12-02 11:11:00 · 2887 阅读 · 0 评论 -
OPhone动画原理及示例
<br />OPhone平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述OPhone平台的动画框架是如何实现的。任何一个框架都有其优势和局限性,只有明白了其实现原理,开发者才能知道哪些功能可以利用框架来实现,哪些功能须用其他途径实现。 (作者:鲁威)5 s+ _6 x5 v* g( I9 ^; g<br />OPhone动画框架原理0 C7 ~! U) G* y; C& o1 S<br /> 现有的OPhone动画框架是建立在View的级别上的,在View类转载 2010-12-02 14:51:00 · 576 阅读 · 0 评论 -
OPhone 2D UI 动画教程之一——Animation介绍
<br /><br />在本系列教程中将介绍OPhone中提供的2D UI 动画(Animation),利用OPhone提供的动画功能可以很容易的创建各种UI动画效果,恰当的使用不同的动画组合可以使我们的程序更加招人喜爱。OPhone 2D UI动画概述在前面的《OPhone平台SurfaceView教程》中介绍了如何使用SurfaceView来创建一个现实GIF动画的自定义View,虽然OPhone不支持GIF动画显示但是OPhone却提供了其他动画效果。目前OPhone中提供了三种动画效果:逐帧动画(f转载 2010-12-06 19:23:00 · 786 阅读 · 0 评论 -
Android Animation学习笔记
<br /><br />关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式:<br />1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;<br />2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。动画类型<br />下面先来看看Android提供的动画类型。Android的animation由四种类型组成<br />在XML文件中:alph转载 2010-12-06 19:24:00 · 584 阅读 · 0 评论 -
ADROID 2.1 架构解析 9 SD/USBk
9 SD/USB 9.1 主流程 文件:system/core/vold/Vold.c int main(int argc, char **argv) { ... mkdir("/dev/block/vold", 0755); ... /* * Bootstrap */ bootstrap = 1; // Volume Manager volmgr_bootstrap();转载 2010-10-19 18:07:00 · 931 阅读 · 2 评论 -
设计自己的Android Preference
设计自己的Android PreferenceSeekBar PreferenceAndroid提供了Preference供应用可以进行功能设置以及属性配置等操作,检查android.preference可以看到Preference下有若干子类,例如常用的EditTextPreference、CheckBoxPreference、ListPreference等。但是仅仅有这些是不够的。在我现在的工作当中,应用里有这么一个场景,用户手指在屏幕滑动,应用绘制出移动的轨迹。熟悉Android API Demo转载 2010-10-22 15:12:00 · 1141 阅读 · 0 评论 -
Gsensor lis301 driver 升级到 lis331 driver 过程总结,以及android中Gsensor相关流程
<br /><br />1.使G-sensor正常工作需要做的事:<br /> <br />G-sensor driver文件包括:<br /> <br />driver/i2c/chips/lis331dl.c<br />driver/i2c/chips/sensorioctl.h<br />include/linux/lis331dl.h<br /> <br />并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2c_dev转载 2010-10-22 15:13:00 · 1127 阅读 · 0 评论 -
SD/USB
<br /><br />9 SD/USB<br /> <br />9.1 主流程<br /> <br />文件:system/core/vold/Vold.c<br />int main(int argc, char **argv)<br />{<br /> ...<br />mkdir("/dev/block/vold", 0755);<br /> ...<br /> /*<br /> * Bootstrap<br /> */<br /> <br />转载 2010-10-22 15:15:00 · 1282 阅读 · 0 评论 -
sensor使用的一些理解
<br /><br />如果想要调用系统的sensor,那就得用到系统自带的sensorservice。一般的调用方法是.<br />先开启服务:<br />mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);<br /> mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);//这个是light sensor的实例<br />然后原创 2010-10-29 17:09:00 · 4598 阅读 · 1 评论 -
EventBus源码分析
EventBus的使用这里就不讲了,从几个问题来分析源码吧 1:subscribe 注解的方法如何读取,并维护数据 2:post后如何找到对应的方法 3:线程间如何切换 先举个栗子 public class Test1 { private final String TAG = getClass().getSimpleName(); public Test1() { ...原创 2019-06-26 20:25:20 · 191 阅读 · 0 评论