Android技术
爱吃西瓜的兔子
这个作者很懒,什么都没留下…
展开
-
out of memory
今天在编译一处工程的 时候,报给我这个错误了UNEXPECTED TOP-LEVEL ERROR:java.lang.OutOfMemoryError: Java heap spaceat java.util.Arrays.copyOf(Arrays.java:2734)at java.util.ArrayList.ensureCapacity(ArrayList.java:167原创 2017-05-16 11:59:51 · 375 阅读 · 0 评论 -
加壳问题
目前市面上针对Apk的保护主要是基于Dex,公开的有DexGuard、梆梆、爱加密、ApkProtect等,私底下相信很多涉及到技术保密的App开发商都在做自己的保护策略。而针对so的保护就相对滞后了一些,这里有so在app中扮演的角色的原因,也有so自身特点的原因。我个人理解,elf文件相对Windows的PE来说松散一些,物理磁盘上的文件和内存里的文件镜像差异更大,所以在处理上原创 2017-05-16 18:01:21 · 648 阅读 · 1 评论 -
Handler,Message,MessageQuene三者不得不说的故事
Android开发中,Handler用的非常多,因为它和AsyncTask一样是系统提供给我们的异步的通信机制。能够将一些更新和别的不适合放在UI主线程的操作放到它们中去。Handler的作用主要有两个:一是在线程中发送消息, 二是获取和处理消息。既可以发送消息sendEmptyMessage(int what) ,也可以发送指定的消息sendMessage(Message msg),还可原创 2017-05-09 16:37:30 · 448 阅读 · 0 评论 -
点击事件异常
01-16 11:13:43.918: E/InputEventReceiver(6256): Exception dispatching input event.01-16 11:13:43.918: E/MessageQueue-JNI(6256): Exception in MessageQueue callback: handleReceiveCallback01-16 11:13:4原创 2017-06-09 11:12:31 · 549 阅读 · 0 评论 -
This version of Android Studio is incompatible with the Gradle Plugin used.
今天在使用butterknife的时候,下载的github上面8.5.1版本,编译时报错说需要使用最新的gradle plugin,distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip11升级了gradle到2.14.1版本之后,好吧,这个错误没了,又有了新的错误..This原创 2017-06-10 11:46:00 · 1882 阅读 · 0 评论 -
(源码阅读)Resources资源加载流程
google加载资源的源码 ImageView里面的Src图片属性,最终都是通过下面这行代码去加载的:1final TypedArray a = context.obtainStyledAttributes(2 attrs, R.styleable.ImageView, defStyleAttr, defStyleRes);34原创 2017-07-31 21:30:07 · 1061 阅读 · 0 评论 -
(源码阅读)自己动手打造一套属于自己想IOC注解框架
阅读过Xutils3和butterKnife的源码之后,稍微比对了一下,俩个都写的非常nb~~ Xutils3通过源码发现,主要是通过反射去 获得属性,函数进行注入。 而butterKnife通过将一系列的参数拼接起来重新生成一个.java文件打包到apk里面。 so,我们还是来通过反射的方式打造自己的IOC注解框架吧。publi原创 2017-06-23 10:12:30 · 390 阅读 · 0 评论 -
(源码阅读)插件式换肤的demo的实现
在通过阅读Resources资源加载的流程后,知道了Android的资源加载都是通过Resources这个类来加载的,所以我们也来写一个小型的插件式换肤的demo主要就是在Activiy里面写了,主要的思路还是通过自己去new 一个Resources对象,通过这个Resources对象去读取另外一个apk包里面的资源图片,通过id去拿到这个drawable对象即可,下面就是这个activity原创 2017-07-31 21:43:33 · 372 阅读 · 0 评论 -
(源码阅读)我们经常用的setContentView(),到底做了什么。
既然是源码阅读,那我们就果断上源码吧,首先就是Activity下的setContentView().嘿嘿/** * Set the activity content from a layout resource. The resource will be * inflated, adding all top-level views to the activity. * * @pa原创 2017-07-06 22:01:58 · 374 阅读 · 0 评论 -
设计模式之工厂模式
1:简介简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。2:简单工厂还记得最开始写项目的时候, 一个tabLayout对应七八...原创 2018-05-11 18:11:56 · 211 阅读 · 0 评论 -
设计模式之单例模式
1:简介单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。2:单例模式的特点2.1、单例类只能有一个实例。 2.2、单例类必须自己创建自己的唯一实例。 2.3、单例类必须给所有其他对象提供这一实例。3:最简单的单例模式,也称之为饿汉式public ...原创 2018-05-11 18:12:57 · 228 阅读 · 0 评论 -
源码分析之App启动源码分析
想必大家都知道Java程序在启动的时候,最开始加载的函数是main函数public static void main(String [] args){ }那么我们Android应用程序是基于Java虚拟机进行开发的,自然入口函数也是main函数,可是平时我们在写Android应用程序并没有看到这个东西啊。那么接下来我们从mai...原创 2018-05-11 18:14:19 · 1200 阅读 · 0 评论 -
Android View 事件分发机制源码解析
###简述 点击事件的传递顺序为:Activity -> Window -> View 主要的函数为:dispatchTouchEvent -> onInterceptTouchEvent -> onTouchEvent###源码解析 那么我们先从Activity来看当手机点击屏幕的时候,首先会触发Activity的dispatchTouchEvent 方法``...原创 2018-04-27 17:43:47 · 205 阅读 · 0 评论 -
Android内存溢出---out of menory
Android中的内存溢出估计大多数人在写代码的时候都出现过,其实突然觉得工作一年和工作三年的区别是什么呢,其实干的工作也许都一样,产品汪看到的结果也都一样,那区别就是速度和质量了。写在前面的一点儿想法:工作做完了其实不会的还有很多,每天都有莫名的危机感,从真正写代码的这一年多总觉得自己的学习速度比别人的慢很多内存溢出是什么鬼?当某些对象不再被程序所使用,但是这些对原创 2017-05-16 11:47:32 · 505 阅读 · 0 评论 -
关于ecipse项目lib引入报错~
因为公司的 项目都是之前的eclipse项目,所以一直都是用的eclipse~然后今天在给一个工程引入支付模块时,一直报错,lib包引入的时候是正常的,第二次打开lib就报红了也是很郁闷的~~~明明是可以正常引入的~~然后各种build path也不行最后查阅到是因为工程和lib不在一个目录下面,才会导致无法引入。原创 2017-05-02 10:14:24 · 501 阅读 · 0 评论 -
隐藏ActionBar
项目中actionBar冲突了,故此想到把隐藏actionBar的方法小小的总结一下。 先来说下第一种比较常见的,只需要在代码中添加一行代码即可隐藏我们的actionBar,然后自定义:requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);原创 2017-02-27 20:43:19 · 327 阅读 · 0 评论 -
RecyclerView的简单使用--------------(一)
本人之前一直使用的ListView,今天项目中运用到了RecyclerView,就学习了RecyclerView的一些简单使用,下面来介绍一下使用姿势: RecyclerView是V7包下的,studio需要在配置文件加入依赖,如下: compile 'com.android.support:recyclerview-v7:25.1.1'原创 2017-02-28 09:21:39 · 259 阅读 · 0 评论 -
RecyclerView的升级使用--------(二)
写过基础的RecyclerView之后也是不明白为什么那么多人喜欢用RecyclerView,那么复杂,现在终于知道啦。RecycleView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。该控件用于在有限的窗口中展示大量数据集,它被作为ListView和GridView控件的继承者。那么有了ListView、GridView为什么还需要RecyclerView这样的原创 2017-02-28 09:29:43 · 331 阅读 · 0 评论 -
CardView的基本属性
在项目中使用到了CardView,效果非常的nice。下面就来介绍一些常用的属性:原创 2017-02-28 10:21:19 · 515 阅读 · 0 评论 -
初识-------fresco
首先,先附上Fresco的github的地址。 https://github.com/facebook/fresco API中文文档地址:http://fresco——cn.org/docs/index/html Fresco是目前最强大的图片加载框架 Fresco中设计有一个叫做image pipeline的模块,它负责从网络,原创 2017-02-28 19:18:52 · 328 阅读 · 0 评论 -
Activity的生命周期-----史上最详细的
-------------在前行的路上,需要时刻回头眺望之前走过的代码路、、 今天回顾一下我们最常用的Activity,首先,来一张经典图(PS:图是借用他人的)。 -----Step1: 首先,我们来了解一下什么是Activity。 Activity作为Android原创 2017-03-01 17:12:45 · 380 阅读 · 0 评论 -
TextView学习-------------跑马灯效果
每次看到别人的TextView那么酷炫的在滚动,今天终于按捺不住洪荒之力了,自己也搞了一个跑马灯的TextView、 android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:marqueeRepeatLimit="marquee_forever"androi原创 2017-03-02 11:09:25 · 217 阅读 · 0 评论 -
Android之自定义属性简单使用-----获取自定义属性
首先在项目values目录下创建attrs文件,name这里是类名(eclipse全类名) name="SettingItemView"> name="desTitle" format="string"/> name="desOff" format="string"/> name="de原创 2017-03-03 16:10:07 · 501 阅读 · 0 评论 -
【Android 性能优化】—— 详解内存优化的来龙去脉
版权声明:转载请著名出处 http://blog.csdn.net/qq_23191031。作者: 大圣代目录(?)[+]内存与内存分配策略概述1 什么是内存总结2 Android中的沙盒机制Generational Heap Memory内存模型的概述GC机制概述1 Dalvik 和标准Java虚拟机的区别11 Dalvik 和标准Ja转载 2017-03-19 17:02:53 · 1690 阅读 · 0 评论 -
Android Service完全解析,关于服务你所需知道的一切(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻转载 2017-03-10 12:23:59 · 258 阅读 · 0 评论 -
Android中Broadcast Receiver组件详解
BroadcastReceiver(广播接收器)是Android中的四大组件之一。 下面是Android Doc中关于BroadcastReceiver的概述:①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完转载 2017-03-22 20:12:41 · 277 阅读 · 0 评论 -
fresco的初次使用
项目中使用了fresco去加载图片,然后一直加载不出来。查了一下资料才发现问题。原创 2017-03-23 21:03:44 · 369 阅读 · 0 评论 -
导致内存泄漏的八种情况
像 Java 这样具有垃圾回收功能的语言的好处之一,就是程序员无需手动管理内存分配。这减少了段错误(segmentation fault)导致的闪退,也减少了内存泄漏导致的堆空间膨胀,让编写的代码更加安全。然而,Java 中依然有可能发生内存泄漏。所以你的安卓 APP 依然有可能浪费了大量的内存,甚至由于内存耗尽(OOM)导致闪退。传统的内存泄漏是由忘记释放分配的内存导致的,而逻辑上的内存泄漏转载 2017-03-26 16:32:32 · 1654 阅读 · 1 评论 -
View的绘制流程
##1.View的绘制流程 一般来说View的绘制流程分为三个步骤 measure(测量),通过measure来确定View的大小(即宽高) layout(布局),通过layout来确定View的位置(即在屏幕的具体位置) draw(绘制),,通过draw来绘制View所需要显示的内容##2.从哪里入口``````在开发中,我们通常都会在Activity里写...原创 2018-04-27 17:44:12 · 194 阅读 · 0 评论