非主流程序员,不爱加班爱专研。你说没有强者的心该如何成为强者呢?
暂时未有相关通用技术能力~
阿里云技能认证
详细说明我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
本博客将会介绍动态代理在Android应用中的一种使用场景 代理模式 代理模式的作用是为其它对象提供一种代理以控制对这个对象的访问。比如用户调用了一个“吃饭”的方法,如果不依靠代理,用户可能自己拿碗饭吃就行,而如果通过代理的话,可能连碗都不需要用户自己拿,用户只需要张开嘴,代理来喂就行了,需要注意的是,这里代理除了负责拿碗和喂饭外还可以做其他的任何事情,比如说帮你把饭吹凉一些,或者
介绍 圆角控件常用于头像,按钮,图标等,用途十分广泛,而且常常配合board使用。 在IOS中,UIVIew的CALayer层已经提供了圆角和board的方法,所以圆角控件的制作非常简单,只需要类似以下简单代码即可实现: view.layer.cornerRadius = 20; view.layer.borderColor = [UIColor yellow
转发必注明出处:Hook机制之动态代理 使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。 阅读本文之前,可以先clone一份 understand-plug
由于工作需要,可能会涉及到一些需要对第三方的一些jar包与源码进行修改的情况,这个时候javaassist就可以派上用场。 javaassist是一个开源的编辑、修改、创建字节码的类库,它在JBoos项目的AOP框架中发挥了很大的作用。不过我们这次仅仅使用它的修改class的功能。 1 准备工具 1.1 需要用到的工具 1.javaassist.jar 修改class字节码,修改类
android横竖屏切换是非常耗时间的,而且切换的过程也会存在明显的翻转卡顿效果,那么是否可以在竖屏模式下实现横屏的效果呢?答案是肯定的,这里提供一种方法,其思路是对view进行90度的旋转,而且实现起来非常简单,其效果图如下: 首先我们先在layout里排版出一个水平的布局,如下图: 是不是很简单?布局代码如下: <?xml version="1.0" enco
和Linux系统不同的是,Mac系统默认是不带有apt-get软件包工具的,所以要想在Mac上使用上方便的apt-get就需要自己来安装它。 这里我们需要借助一个强大的工具-fink. 首先我们需要下载它,点击右侧链接进行下载,Fink相关文件下载 里面有两个文件,一个是fink,一个是Xquartz,即X11。 之后遵循以下步骤即可: 1.双击XQuartz-2.7.8.d
原文地址:Retrofit 2.0 1.介绍 Retrofit可以将你的HTTP API转化为JAVA的接口的形式。例如: public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") Str
在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情。 下面给出两者转化的方法 # -*- coding: UTF-8 -*- import json #自定义类 class MyClass: #初始化 def __init__(self): self.a=2
题目: Determine whether an integer is a palindrome. Do this without extra space. 思考过程: 题目很简单,要求是判断一个数是否是回文数,回文数的定义就是数字翻转之后与原先的数一样的话就是回文数,比如 101 , 22, 1 等,所以要处理这个问题的话,只需要将一个数的最高位换到最低位,次高位换到第二低位,依次
虽然java是一门静态语言,但是java的反射机制却给java提供了很强大的动态特性,其特点是能让java支持在运行时才能得知名称与内部结构的类,并能访问其所有的方法和成员变量,包括私有方法和私有成员变量。下面我写了一个比较简洁的测试代码,供参考和使用。 测试类 //OBClass.java package com.obo.javaassistdemo; public class
IOS横竖屏切换是一个很纠结的问题,之前项目中用到了,花了长时间查阅资料以及研究,才找到了一个相对靠谱的解决方案,该方案可以处理IOS9系统以上的屏幕翻转,至于IOS9一下的系统,还没有测试过。 为了过程的讲解,我先给出一个应用的需求:整个界面就显示一个按钮,当点击这个按钮的时候,界面能从竖屏切换到横屏,当再次点击的时候,又能从横屏切换到竖屏,之后点击循环往复。为了达到这样的需求,我们首
Android镜像翻转指的是将屏幕进行水平的翻转,达到所有内容显示都会反向的效果,就像是在镜子中看到的界面一样。这种应用的使用场景相对比较受限,主要用在一些需要使用Android手机界面进行镜面投影的地方,比如说车载手机hud导航之类的。 镜像翻转的效果如下: 镜像水平翻转前后效果 在没办法对硬件进行直接翻转的时候,只能从代码进行着手。最先想到的方法是一种比较弱的实现方案
python搭建服务器以快捷著称,实际上,我们也可以使用python搭建简易的服务器。 1.环境配置 当然首先得搭建python的开发环境,对于mac和linux的用户来说,一般python是自带的,当然,如果没有的话也可以很方便地进行安装,在终端输入以下命令: sudo apt-get update sudo apt-get install python 即可进行快速集成安装
git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器。 在linux上面搭建git服务器是一件非常轻松的事情,只需要按照以下几步就能完成。为了确保整个过程的顺利,最好新创建一个名为git的账号,再使用该账号进行配置 1.安装git 在linux系统中,git安装只
最近实习公司的ios项目中需要用到毛玻璃的效果(如下图效果) 尝试用了几个方法都不太满意,最后终于找到了一个比较好的解决方案。 在IOS8以上的机器中,我们可以利IOS SDK中已经提供了的UIBlurEffect和UIVisualView实现简单毛玻璃的效果。实现的方法如下: UIImageView *imageView = [[UIImageView alloc]i
github是一样很好用的工具,除了能作为开源项目的搜索工具外,还能用来搭建maven仓库,方便远程的使用。为此,我查阅了一些资料也结合了一些博主的博客,一步步试验最后成功搭建出了这样的maven仓库,在这里我将整个搭建的过程分享给大家。 一、准备 准备好两样必要的工具 git和gradle 1.安装git,直接下载一个 GitHub Desktop for Mac
我有一段时间特别想实现一个短距离的手机交互软件,比如多人联机小游戏app或者是多人文件共享app等,思来想去,得出了两个方案,一个是使用手机自带的蓝牙设备,通过蓝牙技术实现两个手机的数据交换,而另一个就是使用socket了。蓝牙技术对于android的小伙伴来说并不陌生,传文件什么的常用到,而且网上资料也十分丰富,所以这里不详细说明。而socket则是网络通信的大神级工具,无论c语言也好j
首先要配置好必须的环境,详细见我的前几篇的博客 http://blog.csdn.net/leilba/article/details/47206231 http://blog.csdn.net/leilba/article/details/47381365 1.为工程设置ndk路径 打开android studio,右键工程,选择open Module Setting
Android应用界面中可以看得见的都是由一个个的View所组成的,几乎所有的可视的控件都是基于View写的。在View中提供了对touch也就是手势的捕获和传递,我们可以对View里面手势的重写来达到我们所需要的特性。比如说我们现在要做一款游戏,内容很简单,就是要实现让如图所示的一个黑色的小球在根据手指移动而在手机屏幕内移动。 我们可以重写View里面的public boolean
这几天在补学git的用法,感觉挺有意思的,特别结合了一些简单的shell编程之后,就能比较快速地将代码提交到github上面,这里简单记录一下。 首先要先有github的账号,这个直接去https://github.com 申请一个,建立一个空的repository, 如果不需要事先创建readme的话,可以跳过3,填好1和2后直接点击Create repository。 之
在android应用开发过程中,常常涉及到需要自己来重写一个view。一般情况下,只需要重写view中的onDraw方法就能够实现绘制的工作,但是有的时候,涉及到多层且动态的效果的话,不加处理而直接在onDraw中直接绘制的开销会十分大,这种情况下,应用缓存技术就十分有必要了。 缓存技术的原理其实十分简单,就是事先将需要展现的界面全部绘制完成,然后在onDraw里面直接将缓存好的界面展示
在使用之前,要确认通信环境已经配好了,HttpClient所需要的包也已经导入了,具体的可以见我前一篇博客 在使用HttpClient的时候,可以使用的方法包括 Get方法、Post方法、Put方法、Delete方法等,这些都是HttpClient.jar给我做好了的,我们使用的时候只需要调用就可以了。 首先,从Get方法的使用开始讲起。 Get方法,顾名思义,是从网络获取数据,在使
只要是涉及到开发与服务器交互的android应用,就一定会接触到android网络开发。在android或者说是Java中,最常用到的是HttpClient工具,要使用的话首先要先去下载一个 httpclient-4.2.jar 的包,当然版本可以自行调整。导入包很简单,只需要复制到对应工程lib文件夹里面就可以了,如下图所示: 在工程中导入改包之后就可以使用HttpClient
在许多应用都要用到在手机待机状态的时候点亮屏幕并解锁屏幕,比如说闹钟应用和重要消息提醒的应用。 话不多,首先是点亮屏幕: 这里先在AndroidManifest.xml里添加系统权限: <uses-permission android:name="android.permission.WAKE_LOCK" /> 然后在java代码里面添加下面的方法,需要使用的地方
很多时候,为了能够使程序能够更好地达到我们所需要的效果,我们需要对View进行重写,重写一个View其实是简单的,下面给出了两步就可以完成一个简单的View的重写和调用: 1.创建一个类继承View,并重写其中的onDraw方法 DemoView.class package com.obo.mapview; import android.content.Context; i