
android-主题
Developings
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flutter第三方包依赖方式
flutter 依赖原创 2022-11-12 17:27:14 · 1678 阅读 · 0 评论 -
OkHttp源码分析
OkHttp目前是Android平台主流的网络请求框架,包括最近比较出名的Retrofit网络请求库也是基于OkHttp框架来实现的,我们有必要学习下它的实现原理.我们一般用OkHttp的使用方法如下:private val client = OkHttpClient.Builder().build()val request = Request.Builder() .url(server.url("/")) .header("Accept", "text/plain")原创 2020-05-28 21:02:02 · 256 阅读 · 0 评论 -
Android Handler消息机制(源码分析)
Handler在Android中的主要作用是解决跨线程通信的问题.它的实现需要以下三个类一起完成Message(消息载体),MessageQueue(消息队列)以及Looper以下我们从常用的sendEmptyMessage方法开始分析它的实现流程. public final boolean sendEmptyMessage(int what) { return sendEmptyMessageDelayed(what, 0); }最终会调到如下方法public原创 2020-05-22 22:39:21 · 244 阅读 · 0 评论 -
Android系统锁屏启动流程(7.1.0)
我们知道Android系统启动在SystemServer中会启动PhoneWindowManager,在服务启动完成之后会调用它的systemReady方法,我们今天就从这里开始分析系统开机后锁屏界面是如何展示出来的.以下是系统systemReady相关代码/** {@inheritDoc} */ @Override public void systemReady() { ...原创 2020-03-29 14:55:46 · 1036 阅读 · 0 评论 -
Android系统WIFI设置源码解析
Android系统设置界面中的WIFI页面是在packages\apps\Settings\src\com\android\settings\Settings$WifiSettingsActivity,.下面我们对WIFISettingsActivity进行分析.以下是onCreate方法@Overrideprotected void onCreate(Bundle savedState)...原创 2019-04-16 23:07:01 · 3065 阅读 · 0 评论 -
Launcher3源码简易分析
这是一篇关于Launcher3源码简易分析记录,简单的记录下大致过程,仅供学习记录使用先从入口找到Launcher3的Applicatino入口.LauncherApplication。这里面主要做了两件事情。第一,将应用上下文传递到LauncherAppState对象中,这是个单例对象;第二,实例化LauncherAppState对象;以下是其构造方法 private La...原创 2019-04-07 15:55:02 · 728 阅读 · 0 评论 -
Android中使用Java8 新增语言功能
支持 Java 8 语言功能需要一个名为 Jack 的新编译。Jack 仅在 Android Studio 2.1 和更高版本上才受支持。因此,如果要使用 Java 8 语言功能,则需使用 Android Studio 2.1 开发应用。Android 并非支持所有 Java 8 语言功能。不过,以下功能在开发面向 Android 7.0(API 级别 24)的应用时可用:原创 2017-03-09 21:27:42 · 389 阅读 · 0 评论 -
Android 开发中代码便捷处理
1 . 设置actionBar的图标在屏幕底部显示 Android 3.0版本增加的功能,类似menu的作用,在官方的例子中,图标都是在屏幕顶部的,前提是你上面有足够的空间,如果想把actionBar的图标放下屏幕底部就要用下面的代码了 ,在Androidmanifest.xml文件中activity标签中添加[java] view plain copy原创 2016-10-25 16:40:12 · 217 阅读 · 0 评论 -
Android BLE蓝牙使用详解
本篇文章,制作学习记录使用,就简单介绍下在Android端BLE蓝牙通讯。 BLE蓝牙通讯必须建立服务端和客户端。 从讲解之前我们先简单介绍下一下一个类BluetoothManager(蓝牙管理器),BluetoothAdapter(蓝牙适配器),BluetoothDevice(蓝牙设备),BluetoothSocket(蓝牙通讯客户端Socket),BluetoothServerSocket...原创 2018-04-06 21:48:56 · 2205 阅读 · 1 评论 -
Android LayoutInflater工作原理
在Android中LayoutInflater用的地方有很多,它的作用就是将用xm编写的布局文件转换为View对象。今天我们就来分析它的实现原理。我们知道在Activity中我们向其中添加布局是通过setContentView(@LayoutRes int layoutResID)这个方法来添加的,我们今天就从这个地方开始一步一步分析它是怎么将xml描述的view添加到我们的Activity窗...原创 2018-03-26 22:01:45 · 303 阅读 · 0 评论 -
Android ProGuard 混淆 详解
现在写的app 基本都是经过混淆了的,如果不混淆, 发布出去,别人一反编译 就可以直接看你的源码了ok 来说一下混淆吧:我现在用的AndroidStudio , 只需要在 build.grade 的配置文件中配置如下即可: [html] view plain copy buildTypes { debug { versionNam原创 2016-10-14 21:57:33 · 254 阅读 · 0 评论 -
Android微信抢红包插件开发
第一步,重写AccessibilityService实现类。重写onAccessibilityEvent(AccessibilityEvent accessibilityEvent)(这个方法是接受系统所有AccessibilityEvent事件接受回调方法)onInterrupt() (反馈中断回调接口)这两个方法第二步,配置AccessibilityService:配置方法有原创 2016-11-06 23:21:12 · 467 阅读 · 0 评论 -
activity-alias的使用
activity-alias是Android里为了重复使用Activity而设计的。当在Activity的onCreate()方法里,执行getIntent().getComponent().getClassName();得到的可能不是这个Activity的名字,有可能是别名的名字,例如:在AndroidMenifest.xml有如下配置:[xhtml] view plain原创 2016-09-30 17:05:24 · 252 阅读 · 0 评论 -
Android CalendarView非常用属性全解析
android:dateTextAppearance 设置日历View在日历表格中的字体皮肤;android:firstDayOfWeek 指定日历第一个星期的第一天,在日历中横向所在位置,从右边向左数,从1开始计数;android:focusedMonthDateColor 设置日历表格当月显示的日期字体颜色;android:maxDate 设置日历能够显示的最大日期;原创 2016-10-17 15:50:26 · 6403 阅读 · 0 评论 -
Android中WebView的使用简介
WevView是一个可以显示网页的控件,它采用WebKit渲染引擎来显示网页。由于在实际开发中并未使用过WebView,所以对WebView并未有经验之谈,还有很多没有整理不打算写了,以后实际开发中在整理吧。本文参考慕课网、Android API。1、基本用法首先添加网络访问权限:name="android.permission.INTERNET"/>布局文件,添加WebVie原创 2016-10-27 23:11:44 · 216 阅读 · 0 评论 -
Android跨应用访问资源启动Activity
第一部分,访问未安装应用的资源文件。 1,建立两个Project,取名一个叫new,一个old。 2,new项目生成apk文件拷贝到手机上面,注意不要拷贝到getFilesDir()指向的目录,apk一到那个目录就损坏,可以拷贝到它的父级目录; 3,接下来就是访问new.apk里面的资源文件了。 访问资源文件的代码如下:try {/**/原创 2016-11-17 16:28:37 · 474 阅读 · 0 评论 -
Menu:Xml属性全解析
第一部分Group属性:android:menuCategory 关键词。它的值对应了Menu类的CATEGORY_*常量,定义了菜单组的优先级。有效值如下: 值 说明container 菜单组是容器的一部分system 菜单组是由系统提供的。secondary 提供给用户的辅助选择的菜单组(很少使用)alternative 基于当前显示的数据来选择操作的原创 2016-11-02 16:49:58 · 469 阅读 · 0 评论 -
Android Manifests Application节点属性全解析
A、android:allowClearUserData('true' or 'false')用户是否能选择自行清除数据,默认为true,程序管理器包含一个选择允许用户清除数据。当为true时,用户可自己清理用户数据,反之亦然B、android:allowTaskReparenting('true' or 'false')是否允许activity更换从属的任务,比如从短信息任务切换原创 2016-10-25 15:33:55 · 772 阅读 · 0 评论 -
Android 调用系统Email发送带多附件的邮件
众所周知,在Android中调用其他程序进行相关处理,都是使用的Intent。当然,Email也不例外。 在Android中,调用Email有三种类型的Intent: Intent.ACTION_SENDTO 无附件的发送 Intent.ACTION_SEND 带附件的发送 Intent.ACTION_SEND_MULTIPLE 带有多附件的发送 当然,所原创 2016-10-09 14:26:12 · 1014 阅读 · 0 评论 -
Android Activity非常用Flag属性介绍
Intent.FLAG_ACTIVITY_FORWARD_RESULT Activity A 启动了Activity B,Activity B又启动了C,A-->B-->C, 这种情况下,A启动B要求B返回result给A,但是如果B在启动C时,Intent设置了Intent.FLAG_ACTIVITY_FORWARD_RESULT标志,那么此时将会交由C向A setResult。原创 2016-10-20 18:36:05 · 1846 阅读 · 0 评论 -
android图片特效处理之怀旧效果
图片特效处理系列将介绍图片的像素点的特效处理,这些物资注重的是原理。也就是说只要你知道这些算法不管是C++,VB,C#,Java都可以做出相同的特效。下面将介绍图片怀旧效果的算法。算法如下:上面公式的意思是说将每个像素点的RGB值先分离出来,然后再按照上面的三个算式分别重新计算出RGB值然后做为当前点的RGB值。下面看效果图片:原图片:处理后:代原创 2016-10-22 14:50:32 · 352 阅读 · 0 评论 -
Android之获取图片缩略图
之前往往是通过Bitmap、Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图。现在我给大家介绍一种比较简单的方法:(网上有)在Android 2.2版本中,新增了一个ThumbnailUtils工具类来是实现缩略图,此工具类的功能是强大的,使用是简单,它提供了一个常量和三个方法。利用这些常数和方法,可以轻松快捷的实现图片和视频的缩略图功能。T原创 2016-10-21 22:30:14 · 673 阅读 · 0 评论 -
Android ViewGroup指定子View的绘制顺序
ViewGroup及其子类如果要想指定子View的绘制顺序只需两步:1,setChildrenDrawingOrderEnabled(true) 开启自定义子View的绘制顺序;2,用setZ(float),自定义Z值,值越大越优先绘制;原创 2016-10-23 14:50:31 · 2659 阅读 · 0 评论 -
Android中TextView属性全纪录
关于TextViewTextView是Android开发中最最常见的控件之一,在API记录的属性有很多,但实际开发中,有很多很少涉及但是却非常有用的属性,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找.结构TextView继承自View public class TextView extends View implements OnPreDrawLi原创 2016-10-13 10:21:02 · 218 阅读 · 0 评论 -
Android Switch属性全记录
android:showText 是否绘画文本,默认绘制文本;android:splitTrack 设置是否设置间隙,让滑块和底部之间分离;android:switchMinWidth switch组件的最小宽度;android:switchPadding 设定switch和标题文本之间的最小间距;android:switchTextAppearance 设置显示在s原创 2016-10-13 10:42:14 · 3502 阅读 · 0 评论 -
文章标题
1. ** Android IOC框架实现 =============== ** 本文简单介绍下如何实现编译期注解 介绍编译期注解,首先得介绍下如下两个注解 Target注解的功能就是表明你这个注解是用在什么地方的,它的值是一个枚举型 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_原创 2016-11-18 00:23:40 · 233 阅读 · 0 评论 -
Android内存缓存
support包下的Lrucache源码public class LruCache { private final LinkedHashMap map; /** Size of this cache in units. Not necessarily the number of elements. */ private int size;//记录每个缓原创 2016-11-14 22:36:53 · 291 阅读 · 0 评论 -
Android 动态热修复
第一步构建有bug的APP代码如下 MainActivity代码如下:public class MainActivity extends Activity { Button btnOpen, btnModify; NullTest nt = new NullTest(); @Override protected void onC原创 2016-11-18 10:43:52 · 422 阅读 · 0 评论 -
Android Content Provider使用
工作这么久了,从来没有在应用中使用过内容提供者,但是内容提供者作为四大组件之一,还是很重要的,今天就抽个时间写篇博客总结一下,加深记忆。首先要想实现内容提供者必须实现ContenProvider和SQLiteOpenHelper.实现如下public class LiteHelper extends SQLiteOpenHelper { public LiteHel原创 2017-03-12 11:08:24 · 264 阅读 · 0 评论 -
Android permission,uses-permission,permission-group,permission-tree,uses-permission-sdk-23的区别
permission :声明一个安全权限,可用于限制对该应用程序或其他应用程序的特定组件或功能的访问。 android:description="string resource" android:icon="drawable resource" android:label="string resource" andro原创 2017-03-12 12:01:01 · 1836 阅读 · 0 评论 -
Android 分享文件
第一部分:发送简单数据给其他App最简单的方式是通过Intent:比如要分享文本给其他App,可以这样Intent sendIntent= new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to原创 2017-03-14 11:53:40 · 1343 阅读 · 0 评论 -
GreenDao3使用完全解析
1,gradle配置(官网样例地址https://github.com/greenrobot/greenDAO/blob/master/examples/RxDaoExample/build.gradle)Module的gradle 里安装如下配置(官方给的配置样例)buildscript { repositories { jcenter() m原创 2017-05-27 12:08:14 · 4487 阅读 · 1 评论 -
Android属性动画源码分析
属性动画实现主要有以下两个类:ValueAnimator,ObjectAnimator。其中ObjectAnimator是ValueAnimator的子类,下面我们先从ValueAnimator源码开始分析。 获取ValueAnimator实例有多种方式,包括如下ValueAnimator()空的构造方法,多个静态方法:public static ValueAnimator ofInt(int…...原创 2018-03-03 18:06:53 · 517 阅读 · 0 评论 -
Android与JS交互
hello.html Carson_Ho // JS代码 // Android需要调用的方法 function callJS(){ alert("Android调用了JS的callJS方法"); return 11; } Android调用JS方法,有以下两种方式第一种:...原创 2018-03-11 21:45:02 · 269 阅读 · 0 评论 -
Android 系统状态栏和导航栏启动流程
我们知道当Android系统启动的时候会启动SystemServer,其中系统的主要服务都是通过它来启动的,本文就从这里开始一步一步研究系统状态栏和导航栏是怎么启动的。首先我们先定位到SystemServer.run()方法中来,如下是方法的定义。private void run() {try {Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SER...原创 2018-03-22 20:35:12 · 1457 阅读 · 0 评论 -
ColorFilter简介
ColorFilter有三个子类分别是PorterDuffColorFilter,ColorMatrixColorFilter,LightingColorFilter.在应用中用到ColorFilter的场景不多,我目前只是在Paint中用到过,通过Paint.setColorFilter(ColorFilter filter)来设置。这三个子类都是通过画笔设置来改变绘制的原创 2017-03-10 12:18:09 · 1481 阅读 · 0 评论 -
Android IOC 动态代理实现
先贴上所有代码 布局文件 xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too原创 2016-11-18 16:28:44 · 453 阅读 · 0 评论 -
Android Studio常用插件整理
1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Insert选择GsonFormat2.Android ButterKnife Zelezny配合ButterKnife实现注解,原创 2016-11-15 16:12:28 · 526 阅读 · 0 评论 -
Android KeyboardView属性详解
【XML属性】API 3android:keyBackground属性说明:设置键的图像。键的图像。 此图像需要是一个StateListDrawable,具有以下可能的状态:normal, pressed, checkable, checkable+pressed, checkable+checked, checkable+checked+pressed。必须引用另原创 2016-11-22 22:40:59 · 4598 阅读 · 0 评论 -
Android windowSoftInputMode属性详解
android:windowSoftInputMode=”stateAlwaysVisible” 表示不管当前View有没有输入控件的时候,Activity启动的时候会显示软键盘,并且如果有输入控件的时候,默认会将焦点聚焦到,第一个输入控件上; 再者不管当前View有没有输入控件,Activity从不可见到可见,也会重新显示软键盘,不管Activity由可见变不可见的 时候软键盘时候还处于显示原创 2016-11-26 20:52:49 · 621 阅读 · 0 评论