
Android
矢口
这个作者很懒,什么都没留下…
展开
-
Eclipse NDK 配置
叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。 NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。 2、NDK提供了一份稳定、功能有限的API头文件声明。 Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版转载 2014-05-24 12:24:47 · 633 阅读 · 0 评论 -
How is android.Manifest.class created?
参考自How is android.Manifest.class created?感谢 stackoverflow 。when compiling AOSP there is a couple of Manifest.java files created automatically.Manifest.classManifest$permission.class转载 2015-12-26 18:38:24 · 829 阅读 · 0 评论 -
Understanding the Android Source Code
转自Understanding the Android Source CodeNote - I own an HTC Explorer(Pico), so many things that are written *might* be exclusive to it, or others with some changes. Describing the Android转载 2016-04-01 19:05:39 · 1755 阅读 · 0 评论 -
Android源码Master分支目录结构
转自Master-androidThis document outlines Android source code in 'master' branch from https://android.googlesource.com/ This page is a WIP page which means information will change constantly转载 2016-03-15 13:57:12 · 5721 阅读 · 0 评论 -
Android 透明状态栏
写这篇文实在是因为网上流传了太多鱼龙混杂的文章,各种东拼西凑,而且只讲方法不讲道理。所以我尽量做到,最后给出的解决方案是能看得懂的。这里不讨论”沉浸式“”沉浸式状态栏“”透明状态栏“的定义,能知道我这篇讲的是”透明状态栏“,说明这些概念你已经搞清楚了。真正意义上的(全)透明状态栏,只有Android 5.0及以上才支持关于windowTranslucentStatu原创 2017-11-06 23:00:05 · 550 阅读 · 0 评论 -
Android EditText在界面恢复时数据出现重复问题
我们在自定义组合控件,或者在ListView/RecyclerView的Item中使用EditText的时候,在屏幕旋转或者在Fragment间切换返回时,会出现一种状况:当前界面上具有同一ID的EditText被填充了相同的数据。具体的原因和解决办法可以看这里:Why does Android change the value of EditTexts with same id?原创 2017-11-05 00:20:41 · 1420 阅读 · 3 评论 -
Android开发艺术探索 - 第1章 Activity的生命周期和启动模式
第1章 Activity的生命周期和启动模式1. 生命周期基本情况onStart和onStop根据是否可见被回调;onResume和onPause根据是否在前台被回调。实际使用中没有其他区别。onRestart当由不可见变为可见时回调。由A启动B,在A的onPause执行完之前,B不会被创建。所以在onPause中不能执行过多的操作。异常情况设备配置改变或者内存不足时,Act...原创 2019-06-17 16:52:24 · 230 阅读 · 0 评论 -
Android开发艺术探索 - 第2章 IPC机制
1.多进程模式给四大组件指定android:process。命名方式:“:”开头,该process将是application的私有进程,最终的process名会加上package前缀;小写字母开头,该process将是全局进程,多个application可以共享该process。多进程造成的问题:静态成员和单例模式失效线程同步机制失效SharedPreferences可靠性下降App...原创 2019-06-17 16:53:57 · 277 阅读 · 0 评论 -
Android开发艺术探索 - 第3章 View的事件体系
1.基础知识位置参数:left/top/right/bottom是左上和右下的原始坐标位置,不会改变。translation*是相对于left和top的偏移量,默认是0。x/y是左上角当前(所看到的)的坐标。x = left + translationXy = top + translationYMotionEvent:触摸事件ACTION_DOWN/ACTION_...原创 2019-06-17 16:55:54 · 263 阅读 · 0 评论 -
Android开发艺术探索 - 第4章 View的工作原理
1.ViewRoot和DecorViewViewRoot对应ViewRootImpl,实现了DecorView和WindowManager之间的交互。View的绘制流程从ViewRoot#performTraversals开始,经过measure、layout、draw最终将一个View绘制出来:例,measur过程:performMeasure->measure->onMea...原创 2019-06-17 16:58:12 · 215 阅读 · 0 评论 -
Android开发艺术探索 - 第5章 理解RemoteViews
1.RemoteViews应用RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_notication);remoteViews.setTextViewText(R.id.text, "text");remoteViews.setImageViewResource(R.id.image, R....原创 2019-06-17 16:58:49 · 239 阅读 · 0 评论 -
Android开发艺术探索 - 第6章 Android的Drawable
Drawable表示了可绘制对象。getIntrinsicWidth/getIntrinsicHeight获取固有的宽高。对于BitmapDrawable来说,该方法返回其图片的宽高,对于shape类型的,默认返回-1。显示在View中的drawable会被拉伸或缩小为View的大小,固有宽高和其最终显示在View中的宽高不一定相等。一部分Drawable中用到的level的范围是0-1000...原创 2019-06-17 17:01:22 · 301 阅读 · 0 评论 -
Android开发艺术探索 - 第7章 Android动画深入分析
Animation resourcesProperty Animation Overview1.View动画Tween补间动画四种动画效果,平移TranslateAnimation、缩放ScaleAnimation、旋转RotateAnimation和透明度AlphaAnimation,xml中对应四种标签的定义方式(res/anim/xxx.xml):<?xml version=...原创 2019-06-17 17:03:00 · 288 阅读 · 0 评论 -
Android开发艺术探索 - 第8章 理解Window和WindowManager
一些说明:refWindow和View很多时候会彼此混杂,概念模糊不清。比如windowManager.addView实际上将View添加到WM对应的Window当中,并不是添加了一个新的Window,但是为其指定的LayoutParams的type含义却是Window的类型。Window的存在意义,实际上是将View的创建、ViewRootImpl和View交互的操作,从Activity/...原创 2019-06-17 17:03:50 · 387 阅读 · 0 评论 -
Android开发艺术探索 - 第9章 四大组件的工作过程
1.Activity启动过程 ref从Activity的startActivity方法开始。startActivity的多个重载方法,最终都会调用startActivityForResult方法。mParent代表的是ActivityGroup,API 13之前用于在一个界面中嵌入多个Activity,之后被Fragment替代,所以这里一般为null。该方法中主要调用了Instrumentat...原创 2019-06-17 17:04:34 · 292 阅读 · 0 评论 -
Android开发艺术探索 - 第10章 Android的消息机制
1.概述Handler的作用是将一个任务切换到指定的线程去执行。UI操作只能在主线程进行,这个限制是在ViewRootImpl#checkThread中实现的:void checkThread() { if (mThread != Thread.currentThread()) { throw new CalledFromWrongThreadException( ...原创 2019-06-17 17:06:33 · 224 阅读 · 0 评论 -
Android开发艺术探索 - 第11章 Android的线程和线程池
Android的主线程主要是运行四大组件以及处理其与用户的交互;而子线程用于执行耗时任务,如网络请求,I/O操作。1.Android中的线程形态AsyncTask在线程池中执行后台任务,其封装了Thread和Handler,通过execute方法执行AsyncTask。关键方法:onPreExecute:在执行execute方法的线程中运行,一般为主线程,用于执行在开始异步任务之前的一...原创 2019-06-18 11:54:51 · 814 阅读 · 0 评论 -
Android开发艺术探索 - 第12章 Bitmap的加载和cache
1.Bitmap高效加载加载Bitmap的方法:使用BitmapFactory的decodeFile/decodeResource/decodeStream/decodeByteArray可以分别从,文件/资源/输入流/字节数组中加载一个Bitmap。decodeFile/decodeResource会间接调用decodeStream。通过采样率控制加载出的Bitmap的大小,以提高加载效率:...原创 2019-06-18 11:55:01 · 395 阅读 · 0 评论 -
Android与Linux中从uid到用户名的映射
整理自Android 从uid到用户名的映射分析理解 /etc/passwd 文件 /etc/passwd 文件是系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的 shell 程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:name:pa转载 2015-12-06 15:18:45 · 4523 阅读 · 0 评论 -
linux中adb查看Android设备显示“no permission”的解决方案
整理自Android Debug Bridge (adb) device - no permissionsThe cause of that problem has to do with system permissions (thanks @ IsaacCisneros for this suggestion). Somehow HTC Wildfire (and maybe转载 2015-06-08 17:35:25 · 4042 阅读 · 0 评论 -
避免Android开发中的ANR
转自避免Android开发中的ANR原文链接已废,本文原作者节译自google 2010 i/o开发者大会官方视频,可点击这里查看官方演讲pdf。ANR是什么ANRs (“Application Not Responding”),意思是”应用没有响应“。在如下情况下,Android会报出ANR错误:– 主线程 (“事件处理线程” / “UI线程”) 在5秒内没有转载 2015-03-04 00:32:14 · 517 阅读 · 1 评论 -
Android-x86虚拟机安装配置全攻略
Android-x86虚拟机安装配置网上有很多,但是全部说明白的确不多,希望这篇文章能把主要的配置介绍给您,帮助您少走一些弯路。本文分别针对VMWare和Virtual Box两种虚拟机介绍安装配置方法,并描述了如何使用eclipse进行调试。一、安装Android-x86虚拟机1、使用vmware安装Android-x86在http://www.android转载 2014-05-23 18:11:51 · 1758 阅读 · 0 评论 -
Android的系统架构
转自 从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器转载 2014-07-12 00:24:39 · 533 阅读 · 0 评论 -
Android程序的隐藏与退出
转自Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以转载 2014-07-12 14:31:27 · 631 阅读 · 0 评论 -
你真的有必要退出吗——再说Android程序的退出功能
转自你真的有必要退出吗——再说Android程序的退出功能搞Android开发有一段时间了,相信很多从Windows开发过来的Android程序员都习惯性地会跟我一样遇到过同一个问题:如何彻底退出程序?这里说下我自己的经验,并不权威,仅供参考。 一开始我也上网到处找退出的资料,网上这方面的文章也是很多,总结下来退出Android程序的方法大概有以下几种:1.直接调Sys转载 2014-07-12 13:43:55 · 623 阅读 · 0 评论 -
Android系统的体系结构、开发语言及源码结构
转自Android 是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所 当然的。对于搞嵌入式linux开发的人来说我们可以从中学习其长处,也算得上是未来的一个发展方向和趋势吧。我们先来看看Android它的体系结构吧。下面是一张公开的Android体系结构图。转载 2014-07-12 15:19:18 · 1725 阅读 · 0 评论 -
浅谈android中的目录结构
转自 Google Android手机的软件为了安全性和稳定性都是默认安装到手机内存里,但是手机内存有限,所以我们会做app2sd操作,来让我们安装的软件放到sd卡上,这个操作是需要rom的支持的。 Android 2.2 可以将手机程序安装在外置的sd卡上,也就是我们平常所说的app2sd。但是,官方的app2sd非常鸡肋,需要软件自身支持安装在内存卡上才可以,也就是转载 2014-07-12 16:55:36 · 566 阅读 · 0 评论 -
android的原理,为什么不需要手动关闭程序
转自不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小转载 2014-07-12 13:58:51 · 782 阅读 · 0 评论 -
Android应用程序的生命周期
转自 在对一个简单的Hello World工程进行项目结构剖析后,我们接着来学习下一个Android应用程序的生命周期是怎么样的,以便为后面的开发有个垫下良好的基石~ 所谓的应用程序生命周期无非就是应用程序进程从创建到消亡的整个过程。但是,之所有将这一点拎出来单独的讲,当然有其特殊性。的确,Android应用程序的生命周期的终结这个动作并非由应用程序进程本身转载 2014-07-12 16:43:10 · 1018 阅读 · 0 评论 -
Android假退出不是流氓行为
转自Android假退出不是流氓行为关于Android程序的退出,目前我们没有再用System.exit(0)或killProcess的机制而是直接用Activity.finish假退出了。因此在内存充足时,用进程工具会发现我们的程序退出后还在内存里。上一篇文章中我也说了这是Android本身的内存管理和Activity生命周期的机制决定的,本来就是无可厚非的。但有人说这一来会转载 2014-07-12 13:45:19 · 907 阅读 · 0 评论 -
android recovery模式及ROM制作
转自1.总述为了方便客户日后的固件升级,本周研究了一下android的recovery模式。网上有不少这类的资料,但都比较繁杂,没有一个系统的介绍与认识,在这里将网上所找到的和自己通过查阅代码所掌握的东西整理出来,给大家一个参考!2.Android启动过程在这里有必要理一下android的启动过程: 图1 android启动过转载 2014-08-15 17:00:45 · 937 阅读 · 0 评论 -
Eclipse导入Android项目的正确方法
转自看网上流传的Eclipse导入项目的方法都是在新建Android程序时使用“Create project form existing source”选项实现的导入,虽然也能实现,但感觉很山寨的样子,而且导入的项目还在原位,Eclipse不会自动将其复制到workspace目录,且如果预先将项目复制到workspace目录再导入的话就会报错,提示这里已经有一个同名项目了。正确转载 2014-08-18 01:05:23 · 572 阅读 · 0 评论 -
“Unable to create Genymotion virtual devices:Connection timeout”解决方案
参考自Unable to create Genymotion virtual devices:Connection timeoutCheck the /home/user/.Genymobile/Genymotion/genymotion.log file and at last 10 lines of the file you will get somthing like原创 2014-12-27 10:42:12 · 6019 阅读 · 3 评论 -
配置在Ubuntu下adb连接Android设备
1.要在linux上用adb或fastboot访问连接至USB的设备,需要配置udev规则。按照以下步骤设置正确的规则:1)确认你的用户包含在plugdev组中。在终端输入groups并查看plugdev是否在所列出的组中。如果没有看见列出plugdev,可以使用以下命令将您的用户添加到组:sudo gpasswd -a 用户名 plugdev其中用户名替换为当前登陆的li原创 2014-12-28 15:55:48 · 1570 阅读 · 0 评论 -
Genymotion:超赞的安卓虚拟机
转自Genymotion:超赞的安卓虚拟机Android 模拟器一直以速度奇慢无比著称,基本慢到不可用。本文介绍我一直在用的 Genymotion,速度不亚于真机。而且功能齐全,使用简单。Genymotion 来自于 AndroVM 这个开源项目,基于 x86 和 VirtualBox,支持 OpenGL 加速,可以用于 Mac/Win/Linux。最近发布了新版,支持了转载 2014-12-28 14:02:38 · 1144 阅读 · 0 评论 -
Android中ListView的item不能响应点击事件的原因
整理自android:descendantFocusability用法简析开发中很常见的一个问题,项目中的ListView不仅仅是简单的文字,常常需要自己定义Listview。自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸转载 2015-02-09 23:58:32 · 13547 阅读 · 6 评论 -
android ImageView scaleType属性
转自android ImageView scaleType属性使用ImageView时经常会用到scaleType属性,如:android:layout_height="50dp" android:scaleType="matrix"android:src="@drawable/sample_small" />scaleType属性的各个值总是记不住转载 2015-02-21 22:55:39 · 778 阅读 · 0 评论 -
Handler Class Should be Static or Leaks Occur
转自Handler Class Should be Static or Leaks Occur在使用Handler更新UI的时候,我是这样写的:?123456789public class SampleActivity extends Activity {转载 2015-03-01 01:34:16 · 613 阅读 · 1 评论 -
《Android开发艺术探索》笔记目录
该笔记以《Android开发艺术探索》为基础,结合Android 9.0代码和官方文档,修正了原书中表述不明确和过时的部分,同时加入了大量的个人理解。13章,14章,15章是总结性的章节,没有列出,建议直接看原书。Android开发艺术探索 - 第1章 Activity的生命周期和启动模式Android开发艺术探索 - 第2章 IPC机制Android开发艺术探索 - 第3章 View的事...原创 2019-06-18 12:12:20 · 745 阅读 · 0 评论