安卓
洞悉之鬼
这个作者很懒,什么都没留下…
展开
-
AndroidStudio好用的插件
AndroidStudio好用的插件在开发过程中,本人用的最爽的就是代码生成的插件,帮助我们自动完成大量重复简单的工作。个人也觉得代码自动生成工具是最值得推荐的。因此下面的插件以代码生成的插件为主。1. Android ButterKnife Zelezny在Activity,Fragment,Adapter中选中布局xml的资源id自动生成butterknife注解。转载 2016-09-21 14:07:11 · 1394 阅读 · 1 评论 -
Android通用流行框架大全
Android通用流行框架大全1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库Picas转载 2016-09-21 12:18:44 · 339 阅读 · 0 评论 -
自定义控件和fragment使用流程和区别。
自定义控件:1:新建自定义控件xml文件2建立Java文件继承自View或者其子类,并在里面使用(可以在构造函数中使用)LayoutInflater.from(context).inflate(R.layout.a,this)动态加载。也可以在Java文件中对该布局里面的控件进行监听。3使用自定义控件,代码如下。 android:layout_width="mat原创 2016-09-07 17:03:07 · 1403 阅读 · 0 评论 -
JNI编程中如何传递参数和返回值。
本篇将介绍在JNI编程中如何传递参数和返回值。首先要强调的是,native方法不但可以传递Java的基本类型做参数,还可以传递更复杂的类型,比如String,数组,甚至自定义的类。这一切都可以在jni.h中找到答案。1. Java基本类型的传递用过Java的人都知道,Java中的基本类型包括boolean,byte,char,short,int,long,float,dou转载 2016-09-20 16:24:59 · 1192 阅读 · 0 评论 -
android.mk 详解
LOCAL_PATH必须位于Android.mk文件的最开始。它是用来定位源文件的位置,$(call my-dir)的作用就是返回当前目录的路径。Android.mk 定义 属性 方法 Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。因原创 2016-08-18 17:58:30 · 3641 阅读 · 0 评论 -
Android你需要了解的知识点
1、Android四大组件;2、动画、滑动冲突、自定义View、事件分发机制;3、多进程和多线程、以及相关的通信机制:AsycnTask、Handler、Binder、AIDL;4、Android的数据存储方式;5、UI布局、Fragment的使用;6、内存&性能优化、图片的处理、屏幕适配;7、网络通信的几种实现、断点续传的实现、了解TCP/IP、UDP、HTTP等网络协议原创 2016-09-14 13:41:58 · 368 阅读 · 0 评论 -
高效加载大图
图片有不同的形状与大小。在大多数情况下它们的实际大小都比需要呈现的尺寸大很多。例如,系统的图库应用会显示那些我们使用相机拍摄的照片,但是那些图片的分辨率通常都比设备屏幕的分辨率要高很多。考虑到应用是在有限的内存下工作的,理想情况是我们只需要在内存中加载一个低分辨率的照片即可。为了更便于显示,这个低分辨率的照片应该是与其对应的UI控件大小相匹配的。加载一个超过屏幕分辨率的高分辨率照片不仅没有任何原创 2016-09-02 17:48:35 · 314 阅读 · 0 评论 -
JNI: Java类中静态和非静态方法的区别
在java中声明的JNI的静态方法(native static)和非静态方法,对于底层的C/C++代码来说是有区别的:JNI函数的参数也由三部分组成:首先是JNIEnv*,是一个指向JNI运行环境的指针;第二个参数随本地方法是静态还是非静态而有所不同一一非静态本地方法的第二个参数是对对象的引用,而静态本地方法的第二个参数是对其Java类的引用;其余的参数对应通常Java方法的参数,参数类型需要原创 2016-08-23 17:35:15 · 748 阅读 · 0 评论 -
.a文件如何打包到Android项目中
.a文件如何打包到Android项目中原创 2016-08-18 16:17:54 · 1755 阅读 · 0 评论 -
自定义安卓Button样式
Talk is cheap,Show you the code.估计很多朋友对上面的一些属性不是很清楚,比如selector,item,shape,corners,stroke,solid等不太了解,下面的代码就是他们的详细介绍。(上面的代码是我找到的使用最全的,你如果有自定义Button需求的话应该够用了)。上面的可以拆成两部分。第一部分是selector和下面的item属性。第二部分是sh原创 2017-05-25 17:11:12 · 1089 阅读 · 0 评论 -
bindService 和startService 终止方法
1: bindService 解除绑定方法:(1) unbindService 解除绑定(2)尽管 Activity 被 finish 的时候绑定会自动解除2:startService 的终止方法:(3)调用stopService,(4)或自身的stopSelf方法。(当然如果系统资源不足,android系统也可能结束服务。)3:同时使用 startService 与 bindServic原创 2016-09-29 11:47:02 · 5139 阅读 · 0 评论 -
回调函数
前言: 最近在一个地方用到回调函数,差不多一年之前接触过,也写了demo,但是碰见还是半懂不懂的,所以把这次写的demo写成博客,再看的时候也能快些。首先都在说回调,但是我到现在也不是明确的理解哪里回调了,知道代码的逻辑流程,但是还是不理解为什么叫这么个名字,可能有人跟我一样,也可能我比较愚钝,不能一点就透。 回调分为三个关系体:调用者,被调者,被调者的父类(看了原创 2017-08-10 18:36:29 · 245 阅读 · 0 评论 -
Fresco gif不能使用圆圈或圆角的处理方式
起因是这样的,使用recycleView加载items的时候需要封面需要时gif或者是img。这个时候出现了img的item是圆角的但是gif不是圆角。解决办法:在xml文件中使用fresco:roundWithOverlayColor="@color/you_color_id""you_color_id"是指你的背景色,这样也可以实现圆角、圆圈效果解释:fresco不...原创 2018-09-30 18:12:51 · 1025 阅读 · 0 评论 -
ImageView 的scaleType 记录
imageView scaleType1:FitXY 充满所给的区域2:center 不拉伸或者压缩图像,单纯的居中3:centerCrop 保持图像的宽高比,以较长边为准,会超出边界;会填充满整个布局,展示对应对应图片的部分或者全部。4:centerInside 保持图像宽高比,不会对图片进行拉伸,只会进行等比例压缩,不会填充整个布局,会有留白(除非刚好显示整张图片);5:f...原创 2018-10-08 14:54:59 · 203 阅读 · 0 评论 -
官方Property Animation翻译(全部)以及批注
之前一直都是翻译并标注了哪几块哪几块,现在终于可以说,标注完了,O(∩_∩)O哈哈哈~原创 2017-09-06 19:33:45 · 877 阅读 · 1 评论 -
官方Canvas and Drawables翻译以及批注
Android框架提供了一套二维绘图API,可让你将自己的自定义图形渲染到画布上或修改现有视图以自定义其外观和感觉。 你通常以以下方式之一绘制二维图形: - a:在布局中的View对象上绘制你的图形或动画。 使用此选项,会调用系统的渲染管道处理的图形 (需要在视图中定义自行定义) - b:在Canvas对象中绘制图形。使用此选项,需要你将画布传递到适当的类’onDraw(Canvas)’方法。你原创 2017-09-15 19:42:44 · 835 阅读 · 0 评论 -
getTranslationX与getLeft()的联系
假设原来的控件位置(mLeft,mTop)以左边为例:getTranslationX():获取到控件的移动距离,正方向为正,负方向为负。getLeft():控件相对于父布局左边界的距离getLeft()=mleft+getTranslationX();上边也一样:getTop()=mTop+getTranslationY();原创 2017-09-04 15:23:52 · 625 阅读 · 0 评论 -
修改AndroidStudio默认的compileSdkVersion(纠正了大部分文章的错误)
起因最近使用AndroidStudio的时候想要修改一下compileSdkVersion,因为现阶段26并没有相应的API sources,所以想看源码的时候就不能看(我丢)。然后就想着能不能修改默认的compileSdkVersion,设置它的compileSdkVersion为25,然后就去网上搜了一下,网上文章给出的建议是:按照给出的路径/plugins/android/l原创 2017-07-27 11:02:12 · 25040 阅读 · 16 评论 -
实现可滑动,能在外部动态控制ListView显示个数的Android项目
步骤:这里是用一个RelativeLayout实现ListView的一个title,在title中有一个Image通过点击这个image,来控制ListView的显示个数。第一步:新建两个类分别继承RelativeLayout和ListView(title的layout我就不写了,只要是开发的都会写)public class SettingListView extends List原创 2017-08-11 11:55:57 · 470 阅读 · 0 评论 -
使用adb shell对SQLite进行相关查询
写这篇文章呢是被我的adb烦的,只成功了一次,所以我在怀疑是不是偶然成功的。。。。这个是我没启动虚拟机的时候cmd.exe给出的信息,要我打开虚拟机。汗。。。重启ADB之后,打开虚拟机和eclipse程序,再次输入命令行 adb shell 出现这样的提示,看起来好一点,只是看起来,在用cd命令到 数据库的时候出错了。。。就像这样。这种事常见的行不通的方式,重启原创 2016-09-02 10:55:45 · 914 阅读 · 0 评论 -
深入简出理解设计模式
这是第三遍学习设计模式了,书的话推荐大家设计模式之禅,headfirst设计模式。原创 2016-07-12 09:42:36 · 412 阅读 · 0 评论 -
Android数据存储SQLite-使用sql操作数据库
SQLiteDatabase db=new SQLiteDatabase();public static final String CREATE_BOOK = "create table Book (" + "id integer primary key autoincrement, " + "author text, "原创 2016-09-01 15:40:55 · 597 阅读 · 0 评论 -
关于LayoutInflater类inflate(intresource, ViewGroup root, boolean attachToRoot)方法三个参数的含义
关于LayoutInflater类inflate(intresource, ViewGroup root, boolean attachToRoot)方法三个参数的含义resource:需要加载布局文件的id,意思是需要将这个布局文件中加载到Activity中来操作。root:需要附加到resource资源文件的根控件,什么意思呢,就是inflate()会返回一个View对象,如果转载 2016-07-26 16:19:33 · 465 阅读 · 0 评论 -
Fragment简单入门
Fragment1新建两个xml文件(作为fragment的布局文件)2新建两个Java类,都继承自Fragment类,然后重写onCreateView()函数,在其中动态加载Fragment布局文件。示例代码:public class LeftFragment extends Fragment{ @Nullable @Override public原创 2016-07-26 16:18:32 · 224 阅读 · 0 评论 -
dp和sp
Dp和SpDp指的是密度无关像素的意思,也叫作dip,和px相比,它在不同密度的屏幕中的显示比例是一致的。Sp是可伸缩像素的意思,解决了文字大小的适配问题。像素密度的计算公式:比如一个手机的宽是2英寸长三英寸,如果分辨率是320*480像素,那么密度的计算公式是原创 2016-07-26 14:24:14 · 231 阅读 · 0 评论 -
自定义控件的使用流程
自定义控件问题1:重复编写布局代码问题2:为重复布局写重复的相关调用代码解决办法:创建自定义控件1 新建一个布局界面继承ViewGroup里面的布局类自定义控件我们肯定还是要写一个布局文件的我们暂时命名为title.xml我们在构造函数中对这个布局进行动态加载LayoutInflater.from(context).inflate(R.layout.title, t原创 2016-07-25 18:06:44 · 282 阅读 · 0 评论 -
再探ListView的使用和优化
作者在差不多一年之前的时候开始学习安卓,现在也差不多一年了,刚开始学习的时候是通过看视频,看的是老罗的视频,配的书是《安卓从入门到精通》,因为当时断断续续的,所以虽然对ListView有些了解,也知道怎么用,但是还是有些边边角角没有涉及到,这次又用到了,所以索性就把这个点全部扫一遍。再探ListView开发 ListView里面最重要的就是适配器SubAdapter(当原创 2016-07-25 17:35:05 · 272 阅读 · 0 评论 -
LayoutInflater学习笔记
LayoutInflater它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.in原创 2016-07-25 15:09:13 · 301 阅读 · 0 评论 -
Handler.post()和handler.sendMessage()总结
Handlerhandler可以分发Message对象和Runnable对象到主线程中,每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程),它有两个作用:(1):安排消息或Runnable在某个主线程中某个地方执行;(2):安排一个动作在不同的线程中执行 Handler的post(r)方法和Handler的sendMessage方法博客一:一原创 2016-07-25 11:14:42 · 5080 阅读 · 0 评论 -
再探AsyncTask
我记得我在某篇文章里面曾经写过,我是从上一年的7/8月份开始学习安卓,当时千峰老罗的视频和《安卓从入门到精通》,这次应该是第四次接触并且看AsyncTask这样的一个异步任务的使用了,因为其实前几次可能因为也不太熟这个类,然后三个参数(参数中的Progress... values 这点点点什么鬼,然后因为当时时间紧,任务重,就对这个类束之高阁了),4/5个方法,反正当时觉得很麻烦就没用,用的是H原创 2016-07-27 16:19:43 · 267 阅读 · 0 评论 -
RelativeLayout各个属性
android:layout_above="@id/xxx" --将控件置于给定ID控件之上android:layout_below="@id/xxx" --将控件置于给定ID控件之下android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐android:layout_toRightOf="@id/xxx" -转载 2016-07-28 11:29:34 · 188 阅读 · 0 评论 -
android使用mk文件的进阶
最近在搞android上的rtmp协议的播放,将ffmpeg编译成几个.so动态链接库之后(后面再说如何在android下编译ffmpeg源代码),就可以引用头文件并直接写自己的jni接口了,做完这些,就可以写android下的make文件了下面就介绍一下androidmake文件的写法。首先最简单的mk文件可以参照ndk目录下samples目录中的hello-jni工程,这里讲讲如何在mk文转载 2016-08-18 17:45:31 · 1829 阅读 · 0 评论 -
[Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
转载自:主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法。在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件。分别存储位置:*.jar:库/build/intermediates/bundles/debug(release)/classes.jar*.aar:库/build/outputs/a转载 2016-08-17 18:28:08 · 257 阅读 · 0 评论 -
[Android Studio] Gradle项目中添加JNI生成文件(.so文件)
安卓ndk .so文件操作转载 2016-08-17 18:14:01 · 441 阅读 · 0 评论 -
Android中关于aar的一些知识
Android中关于aar的一些知识Android中的aar主要是针对于Android Library而言的,可以简单的理解为是对Android Library的打包,这个包的格式为.aar。首先说说我们为什么要使用aar,在项目的开发过程中,如果多个项目同时依赖一个Android Library,在Android Studio的开发环境下的配置还是比较麻烦的(当然eclipse这里忽略,因为转载 2016-08-05 17:02:20 · 684 阅读 · 0 评论 -
[Android] 环境配置之Android Studio开发NDK
转载自http://blog.csdn.net/qiujuer/article/details/42040963NDK 开发哪家强?XX XX 找 Blue Fly.说到 NDK 开发,其实是为了有些时候为了项目需求需要调用底层的一些 C/C++ 的一些东西;另外就是为了效率更加高些。但是很多时候能不用就不用;这个是啥原因?个人感觉有些时候是觉得麻烦,首先要配置 NDK 还要 下载转载 2016-08-17 16:11:14 · 1932 阅读 · 0 评论 -
How to include *.so file in Android-gradle application?
在app文件夹下面的build.gradle里面的android{}里面添加sourceSets { main { jniLibs.srcDirs = ['libs'] }}这样一段代码即可原创 2016-07-21 17:52:21 · 236 阅读 · 0 评论 -
Android EditText得到和失去焦点时,自定义处理内容
Android EditText得到和失去焦点时,自定义处理内容当android的Edittext得到/失去焦点时,需要自定义一些处理内容时,需要对EditText对象的Focus进行监听处理。在Activity中,做以下处理:1.取得EditText对象。2.为取得的对象添加setOnFocusChangeListener(原创 2016-07-28 12:13:23 · 1078 阅读 · 0 评论 -
padding margin;gravity,layout_gravity
padding margin都是边距的含义,关键问题得明白是什么相对什么的边距. padding是控件的内容相对控件的边缘的边距. margin是控件边缘相对父空间的边距. android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个.andr转载 2016-07-28 12:11:31 · 240 阅读 · 0 评论 -
android彻底退出问题
安卓彻底退出问题原创 2016-05-11 16:43:36 · 371 阅读 · 0 评论