- 博客(42)
- 收藏
- 关注
转载 透过IL代码看C#
透过IL看C# switch语句(上)摘要: switch语句是 C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码。本文介绍了当向 switch语句中传入不同类型的参数时,编译器为其生成的 IL代码。这一部分介绍的是,在 switch语句中使用整数类型和枚举类型的情况。switch语句是 C#中常用的跳转语句,可以根据一个参数的不同取值执行不同的代码。 switch语句可以具备多个分...
2018-07-14 16:32:32
739
原创 源码分析之App启动源码分析
想必大家都知道Java程序在启动的时候,最开始加载的函数是main函数public static void main(String [] args){ }那么我们Android应用程序是基于Java虚拟机进行开发的,自然入口函数也是main函数,可是平时我们在写Android应用程序并没有看到这个东西啊。那么接下来我们从mai...
2018-05-11 18:14:19
1235
原创 设计模式之单例模式
1:简介单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。2:单例模式的特点2.1、单例类只能有一个实例。 2.2、单例类必须自己创建自己的唯一实例。 2.3、单例类必须给所有其他对象提供这一实例。3:最简单的单例模式,也称之为饿汉式public ...
2018-05-11 18:12:57
242
原创 设计模式之工厂模式
1:简介简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。2:简单工厂还记得最开始写项目的时候, 一个tabLayout对应七八...
2018-05-11 18:11:56
220
原创 记一次U3D游戏广告破解
1.什么是unity3d游戏目前手游类型一般都是unity3d游戏,当然不排除java原生和cocos2dx的游戏和一些游戏公司自有引擎的那么我们拿到一个apk如何区分是一个unity3d的游戏呢只需要将apk解压缩即可[})JUK9F8)P5I7JAN7]2HHN.png当我们看到dll的时候,很明显这就是一个unity3d的游戏了。2.工具准备...
2018-05-11 18:10:45
2838
1
原创 EventBus3.0源码解析
##EventBus的注册```EventBus.getDefault().register(this);```那么我们来看一下EventBus.getDefault(),到底做了一下什么操作```/** Convenience singleton for apps using a process-wide EventBus instance. */ public static EventB...
2018-04-27 17:44:39
216
原创 View的绘制流程
##1.View的绘制流程 一般来说View的绘制流程分为三个步骤 measure(测量),通过measure来确定View的大小(即宽高) layout(布局),通过layout来确定View的位置(即在屏幕的具体位置) draw(绘制),,通过draw来绘制View所需要显示的内容##2.从哪里入口``````在开发中,我们通常都会在Activity里写...
2018-04-27 17:44:12
208
原创 Android View 事件分发机制源码解析
###简述 点击事件的传递顺序为:Activity -> Window -> View 主要的函数为:dispatchTouchEvent -> onInterceptTouchEvent -> onTouchEvent###源码解析 那么我们先从Activity来看当手机点击屏幕的时候,首先会触发Activity的dispatchTouchEvent 方法``...
2018-04-27 17:43:47
213
原创 android 各国语言对应的缩写
Android资源文件夹的写法规则: 语言缩写-国家地区缩写 语言缩写藏语:bo_CN en英文 en_US英文 (美国) ar阿拉伯文 ar_AE阿拉伯文 (阿拉伯联合酋长国) ar_BH阿拉伯文 (巴林) ar_DZ阿拉伯文 (阿尔及利亚) ar_EG阿拉伯文 (埃及) ar_IQ阿拉伯文 (伊拉克) ar_JO阿
2017-08-29 16:47:54
913
原创 <cocos2dx> 关于cocos2dx接入sdk的一些坑
简单说说,我相信每个人做Android的都知道的更新UI只能在UI线程进行刷新,这是一个非常霸道的条款 而且,我们的UI线程不能被阻塞。 在接入支付SDK的过程,任何的支付SDK都会自带有支付的界面,这个时候就涉及到我们的UI刷新了,如果你不小心直接通过JNI调的函数来 调用支付界面的话,轻则无响应,重则直接挂了,hhh~~ 1:cocos2dx是如
2017-08-17 11:51:20
2407
原创 (源码阅读)插件式换肤的demo的实现
在通过阅读Resources资源加载的流程后,知道了Android的资源加载都是通过Resources这个类来加载的,所以我们也来写一个小型的插件式换肤的demo主要就是在Activiy里面写了,主要的思路还是通过自己去new 一个Resources对象,通过这个Resources对象去读取另外一个apk包里面的资源图片,通过id去拿到这个drawable对象即可,下面就是这个activity
2017-07-31 21:43:33
382
原创 (源码阅读)Resources资源加载流程
google加载资源的源码 ImageView里面的Src图片属性,最终都是通过下面这行代码去加载的:1final TypedArray a = context.obtainStyledAttributes(2 attrs, R.styleable.ImageView, defStyleAttr, defStyleRes);34
2017-07-31 21:30:07
1081
原创 (源码阅读)我们经常用的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
392
原创 (源码阅读)自己动手打造一套属于自己想IOC注解框架
阅读过Xutils3和butterKnife的源码之后,稍微比对了一下,俩个都写的非常nb~~ Xutils3通过源码发现,主要是通过反射去 获得属性,函数进行注入。 而butterKnife通过将一系列的参数拼接起来重新生成一个.java文件打包到apk里面。 so,我们还是来通过反射的方式打造自己的IOC注解框架吧。publi
2017-06-23 10:12:30
399
原创 Xutils3源码阅读,体验高大上的注解
Xutils3如何导入到项目这里就不做介绍了,网上很多教程,我们这里只是阅读源码了。 首先来看下基本的使用方法吧,根据github上面的我们都是这样进行Xutils的初始化了x.view().inject(this);在使用Xutils对View进行注入的时候,其实是通过反射拿到传入的this(当前Activiy),再通过反射拿到
2017-06-23 09:58:26
426
原创 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
1896
原创 (源码阅读)源码分析之AsyncTask
先容我抱怨一下~~工作接触都是游戏SurfaceView渲染的东西~~之前根本不了解~~就一直看博客~~ 这俩天一直碰到ANR~~已经不想吐槽了~~吐血ing............................ 于是,空闲之中发生了阅读源码的想法,不得不说阅读Android源码有很大的收获~~~虽然BUG任在~~
2017-06-09 22:26:59
291
原创 点击事件异常
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
573
转载 Unity为Android编写插件
Unity和Android交互通常有两种方式: 1、Unity调用为Android平台编写的插件 2、将Unity项目导出为Android项目,然后编写Android程序 这两种方式在实际的应用中各有优劣,我们今天先来讲解第一种方法,第二种方法博主稍后再和大家分享。首先来说说第一种方法的原理,我们首先用Eclipse编写一个Java的库文
2017-05-26 15:52:27
2712
原创 加壳问题
目前市面上针对Apk的保护主要是基于Dex,公开的有DexGuard、梆梆、爱加密、ApkProtect等,私底下相信很多涉及到技术保密的App开发商都在做自己的保护策略。而针对so的保护就相对滞后了一些,这里有so在app中扮演的角色的原因,也有so自身特点的原因。我个人理解,elf文件相对Windows的PE来说松散一些,物理磁盘上的文件和内存里的文件镜像差异更大,所以在处理上
2017-05-16 18:01:21
709
原创 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
383
原创 Android内存溢出---out of menory
Android中的内存溢出估计大多数人在写代码的时候都出现过,其实突然觉得工作一年和工作三年的区别是什么呢,其实干的工作也许都一样,产品汪看到的结果也都一样,那区别就是速度和质量了。写在前面的一点儿想法:工作做完了其实不会的还有很多,每天都有莫名的危机感,从真正写代码的这一年多总觉得自己的学习速度比别人的慢很多内存溢出是什么鬼?当某些对象不再被程序所使用,但是这些对
2017-05-16 11:47:32
528
原创 Handler,Message,MessageQuene三者不得不说的故事
Android开发中,Handler用的非常多,因为它和AsyncTask一样是系统提供给我们的异步的通信机制。能够将一些更新和别的不适合放在UI主线程的操作放到它们中去。Handler的作用主要有两个:一是在线程中发送消息, 二是获取和处理消息。既可以发送消息sendEmptyMessage(int what) ,也可以发送指定的消息sendMessage(Message msg),还可
2017-05-09 16:37:30
460
原创 关于ecipse项目lib引入报错~
因为公司的 项目都是之前的eclipse项目,所以一直都是用的eclipse~然后今天在给一个工程引入支付模块时,一直报错,lib包引入的时候是正常的,第二次打开lib就报红了也是很郁闷的~~~明明是可以正常引入的~~然后各种build path也不行最后查阅到是因为工程和lib不在一个目录下面,才会导致无法引入。
2017-05-02 10:14:24
523
转载 导致内存泄漏的八种情况
像 Java 这样具有垃圾回收功能的语言的好处之一,就是程序员无需手动管理内存分配。这减少了段错误(segmentation fault)导致的闪退,也减少了内存泄漏导致的堆空间膨胀,让编写的代码更加安全。然而,Java 中依然有可能发生内存泄漏。所以你的安卓 APP 依然有可能浪费了大量的内存,甚至由于内存耗尽(OOM)导致闪退。传统的内存泄漏是由忘记释放分配的内存导致的,而逻辑上的内存泄漏
2017-03-26 16:32:32
1683
1
原创 通过反射来获取私有的属性,方法~~
今天在面试的时候遇到一个非常nice的面试官,当时问到了如何通过反射来获取私有属性, 虽然本人之前也有做过,不过今天面试官一问顿时一脸懵逼,于是打算写这篇博客记录下来。先来看下我们的javaBeanpublic class test1 { private String name; private int age;} 首先,我们要了解三个反
2017-03-26 11:58:11
25028
2
转载 Android中Broadcast Receiver组件详解
BroadcastReceiver(广播接收器)是Android中的四大组件之一。 下面是Android Doc中关于BroadcastReceiver的概述:①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完
2017-03-22 20:12:41
285
原创 软件测试之杯子模型
在软件测试的面试中, 经常会碰到类似的问题。 比如:如何测试一个杯子, 或者如何测试一只笔。 要求你设计20个以上的test case. 这类的面试题目,是考察面试者是否熟悉各种软件测试方法, 设计test case的能力, 以及test sense。首先应该反问下面试官, 需求是什么样的,比如大概是个什么样的杯子。我回答这类问题的思路, 从软件测试的各种不同方法来联想, 具体如下。
2017-03-22 17:18:41
563
转载 【Android 性能优化】—— 详解内存优化的来龙去脉
版权声明:转载请著名出处 http://blog.youkuaiyun.com/qq_23191031。作者: 大圣代目录(?)[+]内存与内存分配策略概述1 什么是内存总结2 Android中的沙盒机制Generational Heap Memory内存模型的概述GC机制概述1 Dalvik 和标准Java虚拟机的区别11 Dalvik 和标准Ja
2017-03-19 17:02:53
1731
转载 Android Service完全解析,关于服务你所需知道的一切(上)
转载请注明出处:http://blog.youkuaiyun.com/guolin_blog/article/details/11952435相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻
2017-03-10 12:23:59
265
原创 Android之自定义属性简单使用-----获取自定义属性
首先在项目values目录下创建attrs文件,name这里是类名(eclipse全类名) name="SettingItemView"> name="desTitle" format="string"/> name="desOff" format="string"/> name="de
2017-03-03 16:10:07
515
原创 TextView学习-------------跑马灯效果
每次看到别人的TextView那么酷炫的在滚动,今天终于按捺不住洪荒之力了,自己也搞了一个跑马灯的TextView、 android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:marqueeRepeatLimit="marquee_forever"androi
2017-03-02 11:09:25
230
原创 Activity的生命周期-----史上最详细的
-------------在前行的路上,需要时刻回头眺望之前走过的代码路、、 今天回顾一下我们最常用的Activity,首先,来一张经典图(PS:图是借用他人的)。 -----Step1: 首先,我们来了解一下什么是Activity。 Activity作为Android
2017-03-01 17:12:45
393
原创 CNiaoShop---第二天
又是一天的学习,不得不得吐槽菜鸟商城前面那段免费的视频,中间不知道剪切了多少- - --此处省略无数字- - - --- 经过昨天的学习,只是搭建了App的一些外壳,今天正式写第一个Fragment,也是就是商城的主页。 ----step1-------UI界面 首页,从UI上来说,主页采用了SliderLayout+Rec
2017-02-28 23:08:35
333
原创 初识-------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
343
原创 RecyclerView的升级使用--------(二)
写过基础的RecyclerView之后也是不明白为什么那么多人喜欢用RecyclerView,那么复杂,现在终于知道啦。RecycleView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。该控件用于在有限的窗口中展示大量数据集,它被作为ListView和GridView控件的继承者。那么有了ListView、GridView为什么还需要RecyclerView这样的
2017-02-28 09:29:43
345
原创 RecyclerView的简单使用--------------(一)
本人之前一直使用的ListView,今天项目中运用到了RecyclerView,就学习了RecyclerView的一些简单使用,下面来介绍一下使用姿势: RecyclerView是V7包下的,studio需要在配置文件加入依赖,如下: compile 'com.android.support:recyclerview-v7:25.1.1'
2017-02-28 09:21:39
271
原创 隐藏ActionBar
项目中actionBar冲突了,故此想到把隐藏actionBar的方法小小的总结一下。 先来说下第一种比较常见的,只需要在代码中添加一行代码即可隐藏我们的actionBar,然后自定义:requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);
2017-02-27 20:43:19
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人