![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
L.Y001
Shoot for the moon. Even if you miss, you'll land among the stars
展开
-
瀑布流列子,数据库 ormlite 列子,PhotoView 列子等,反正是一个完整的app列子
http://www.eoeandroid.com/thread-554549-1-1.html原创 2014-11-22 11:04:06 · 733 阅读 · 0 评论 -
git 设置名称
git config –global user.email “your email” git config –global user.name “your name”原创 2016-11-07 14:04:42 · 2874 阅读 · 0 评论 -
Android App 架构图
App 架构图 结构清晰原创 2016-10-27 23:16:57 · 8814 阅读 · 0 评论 -
设计模式(建造者与模板方法)
设计模式(建造者与模板方法) 这篇文章用来总结一下工作一些设计思想。 以前记得我们的CTO跟我们说过,“Java是一门面向对象的语言,不要把他写成了C语言(面向过程)”。意思就是说没有封装不懂得使用OOD,OOP在实际生产过程中。 封装是为了方便扩展。说白了Java的设计模式其目的就是为了方便扩展。 我们公司产品 需要打印 两种类型原创 2016-10-06 22:38:16 · 1285 阅读 · 0 评论 -
App架构设计
App架构设计架构的设计原则1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Princi原创 2016-10-30 21:55:58 · 502 阅读 · 0 评论 -
AMapUtils
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.amap.api.maps;import android.content.Context;import android.content.Intent;import a原创 2016-11-14 13:58:17 · 2519 阅读 · 0 评论 -
多线程的相关关键词理解 volatile,atomic,synchronized,lock
多线程的相关关键词理解 volatile,atomic,synchronized,lock 造成线程不安全的原因: 多线程操作一个变量的时候,每个线程会保存有自己的副本,线程的内部当进行操作的时候实际用的是副本,而不是主线程本身。 创建副本的时候(其他线程创建的时候),会去到当前主线程本身的值,不会去拿到其他线程副本里面的值,拿到的值可能是 其他线程操作过后的值,所以这个值不一定是最原创 2016-11-19 16:51:18 · 563 阅读 · 0 评论 -
springboot log4j2
1、pom.xml加入log4j2,并同时把spring boot默认的logging去掉<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>原创 2017-03-21 17:39:33 · 944 阅读 · 0 评论 -
像@Transactional一样利用注解自定义aop切片
在spring中,利用@Transactional注解可以很轻松的利用aop技术进行事物管理。在实际项目中,直接利用自定义注解实现切片可以大大的提高我们的编码效率以及代码的简洁性。实现以上的目标,主要涉及两方面工作。自定义注解将注解声明为切片自定义注解介绍注解自定义的文章比较多,这里简要介绍一下以下面的代码为例。该代码要实现一个分布式锁的代码。首先利用@interface来声明该类为接口类,用@T转载 2017-04-23 11:18:38 · 1575 阅读 · 0 评论 -
Android 6.0 权限的申请 与 封装
Android 6.0 以后最大的改变就是对于权限的管理这一块了,以前某个App 想使用什么权限 只要在 manifest 文件里面添加申请就可以了。 Android 6.0 以后不但要在manifest 里面添加运行的时候还会弹出一个对话框让用户选择是否赋予该权限。新的权限机制更好的保护了用户的隐私,Google将权限分为两类,一类是Normal Permissions,这类权限一般不涉及原创 2016-10-04 16:46:56 · 2081 阅读 · 0 评论 -
数据加密的一些理解
(一)加密算法分为: (1)对称加密算法: DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,AES算法。 (2)非对称加密算法 : RSA、Elgamal、背包算法、Rabin、D-H、ECC。 (3)哈希算法 : MD2、MD4、MD5 和 SHA-1(二) 区别及特点: 对称加密算法: 秘原创 2016-11-12 15:06:49 · 2231 阅读 · 0 评论 -
LinkedBlockingQueue
什么叫线程安全? 线程安全就是每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的。 线程安全就是说多线程访问同一代码,不会产生不确定的结果。并行和并发区别 1、并行是指两者同时执行一件事,比如赛跑,两个人都在不停的往前跑; 2、并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A,交替使用,原创 2016-09-08 15:37:14 · 328 阅读 · 0 评论 -
泛型擦除
泛型 只在编译期段有效。 我们可以在运行期把 泛型擦除。package test.proxy;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List;/** * Created原创 2016-09-18 15:35:56 · 278 阅读 · 0 评论 -
Andoid 总线设计 (一)
以前没有用过 EvenBus ,在Andoid开发过程中 经常使用广播进行通信, 太麻烦了,后面发现了一个叫EvenBus的东西 终于可以减少 了好多广播事件。代码简单了,耦合度低了。Evenbus 确实是个好东西。没有了解过的同学可以看看 EventBus举个列子: public class MainActivity extends Activity {@Overrideprotected原创 2016-07-24 17:20:35 · 540 阅读 · 0 评论 -
Andoid 总线设计 (二)
EvenBus 用的原理很简单 就是 java 的反射。 1. 扫描注册的类,获取有标记的方法,方法参数(Even),及标记(Annotation)里面的内容等相关 的一些信息,保存在内存变量里面。 2. 在调用Post的时候 ,遍历刚刚 扫描到的方法 根据 Post 的参数(Even) 获取 相应要执行的方法列表。 3. 获取到方法后 调用 Method.invoke(); 大致 思路就原创 2016-07-24 17:50:48 · 393 阅读 · 0 评论 -
Andoid 总线设计 (三)
具体的代码设计: 标记注解 用于执行方法上面 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Subscriber { SubscriberType type(); }标记执行类型 同步或者异步 public enum SubscriberType {原创 2016-07-24 18:09:23 · 360 阅读 · 0 评论 -
Andoid 总线设计 (三)
我们来使用 一下我们 写的 EvenBusMainActivity 里面注册了两个事件 :@Subscriber(type = SubscriberType.SYNC) private void onEvent(Action action) { Log.d(TAG, “onEvent = ” + action.getMsg()); bt_post.se原创 2016-07-24 18:34:02 · 378 阅读 · 0 评论 -
java 成神之路 (一)
通注解和反射实例化一个对象适合对java反射有一点了解的人我们都知道 spring 在 变量前面加上 @autowired @component 等注解就可以实例化该变量。它是怎么做到的呢? 反射加Bean工厂,spring扫描这些注解后通过注解从bean工厂里面取出已实例化的对象,然后通过反射赋值到该变量上面,达到了实例化含有改注解的变量。今天我们来演示一下通过 反射加注解怎么实例化一个变量。原创 2016-06-19 12:38:22 · 2427 阅读 · 1 评论 -
java 成神之路 (二)
前一篇博客介绍了如何 通过注解反射来实例化一个对象。 先完成前面提出的一个优化建议。 上一版本,每个含有 @DAL 注解的变量都会 通过反射去得到实例化对象。 要是同一个工程里面 每次都对同一个类通过反射实例化一个 对象出来,这样太浪费资源了。 现在我们就模拟spring的 bean 工厂,把我们已经实例化的对象缓存起来,下次要用到直接拿出来用不用在通过反射实例化出来了。在做这个工作之前原创 2016-06-19 16:17:44 · 659 阅读 · 0 评论 -
java 成神之路 (四)
为了实现AOP 这个功能 我们先得了解一下 java 的代理模式原创 2016-06-21 21:46:05 · 425 阅读 · 0 评论 -
AutoCompleteTextView 自动补全全部
public class MyAutoCompleteTextView extends AutoCompleteTextView{public MyAutoCompleteTextView(Context context) { super(context); }public MyAutoCompleteTextView(Context context, AttributeSet at原创 2016-08-15 17:21:24 · 270 阅读 · 0 评论 -
Butterknife 的简单模拟
Butterknife 是一款优秀的Android 开发框架。 主要用于 控件的初始化,监听事件绑定等,再不用写烦人的 findViewById().新的版本 还加入了 Resource 资源的绑定。 Butterknife 的官网,你可以了解更多。 http://jakewharton.github.io/butterknife/Butterknife 的原理 并不是通过反射 ,而是 A原创 2016-08-01 22:30:32 · 480 阅读 · 0 评论 -
Android DecorView浅析
Android DecorView浅析 一、DecorView为整个Window界面的最顶层View。二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。三、LinearLayout里有两个FrameLayout子元素。(20)为标题栏显示界面。只有一个TextView显示应用的名称。也可以自定义标题栏,载入后的自定义标原创 2016-09-04 21:41:29 · 313 阅读 · 0 评论 -
Java 生产者 与 消费者 的实际运用
生产者与消费者模式的实际运用原创 2016-10-08 23:24:52 · 1784 阅读 · 0 评论