自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林深

给时间留点学习的机会

  • 博客(34)
  • 资源 (6)
  • 问答 (5)
  • 收藏
  • 关注

原创 【Android】AOSP源码下载及编译 for mac

本文记录了AOSP在Mac系统上下载和编译的过程。采用的系统是 macOS 10.13.1所使用的AOSP分支是 android-8.1.0_r7系统预留空间 大于200G一. 环境配置    环境配置,官网给出了非常全的教程:Build Environment    对于Mac用户来说,需要配置的相对也不会很多    1. 创建大小写敏感文

2018-01-25 12:10:09 2318

原创 【算法】代码实现RSA算法

#include <iostream>#include <math.h>using namespace std;int leastCommonMultiple(int a, int b);int maxCommonDivisor(int a, int b);// 最大公约数int maxCommonDivisor(int a, int b) { int t...

2018-10-02 21:53:59 11135 1

原创 【算法】堆排序整理

毕业久了,越是基础的东西忘得越彻底,最近也是趁着有时间,赶紧将这些补一补。说到堆排序,是这些排序算法中最后一个重新理解的算法,究其原因,应该是其实现的复杂要高于其他几个算法。堆排序的结构形态是用一个数组实现了一个二叉树,堆分为最大堆和最小堆两种,最大堆指的是该二叉树的任意一个父节点都比其相连的子节点大,最小堆则反之。对于最大堆来说,其根节点就是整个堆的最大值。那么对于堆排序算法来说,主要做的是两件...

2018-03-01 13:03:49 275

原创 【Android】Android studio调试源码版本不对应问题

在使用Android studio进行调试的时候,我们经常会需要debug到源码内部,这个时候经常会出现debug位置与源码行号对应不上的问题,这是因为我们使用的测试设备中的系统版本与我们AndroidStudio中使用的SourceCode的版本不一致导致的。比如我们使用的是6.0的设备,而Android Studio错误地识别并使用了版本为8.0的SourceCode,就会出现这个问题。我们从

2018-01-29 18:07:46 4816

原创 【Android】自定义Binder与进程间通信

多进程需求在我们开发中常有遇见,因而学习多进程的通信机制是非常有必要的。我们知道,AIDL、Messenger等常用的进程间通信框架都是对Binder的封装,所以,学习Binder的使用对后续理解Binder机制有非常大的好处。本篇目的就是要从自定义Binder出发,实现基本的进程间通信功能。

2017-09-05 01:40:03 1724

原创 【Android】发包过程中踩过的坑

Android发包有许多坑的地方,下面对之前遇到过的问题进行总结,以期望将来不再出现这些令人不快的问题。1. 代码混淆代码混淆问题已经在发包流程中多次出现,其主要的原因是:靠反射执行的方法在代码混淆后会找不到反射的类导致该部分功能失效,甚至导致Crash。这一问题在广告以及第三方SDK的使用中多次出现,尤其是在SDK升级或者接入新的SDK的时候特别要注意这个问题,另外在自己使用

2017-08-22 11:15:26 1440

原创 【Android】在Recent列表中隐藏App

recent列表,指的是:在Android中长按Home键所显示的最近使用的程序缩略图。一般App运行之后,都会在这个列表中留下纪录,且许多用户习惯通过这个列表直接杀掉App。不过最近发现自己在用的一款闹钟App在启动后,按back或者home键后,都不会在recent列表中留下任何纪录,所以非常好奇它的实现原理。于是反编译了它的Apk,发现在AndroidManifest中给Acti

2016-07-31 19:28:45 2291

原创 【Android】Mac 搭建Android Studio

手贱误删了一次,重新发一遍mac搭建Android Studio也就是AS环境。在没有用梯子的情况下,捣鼓了两天,终于是在mac上面把AS 的开发环境弄出来了,先展示一下成果还有这张先把用到的资源包都挂出来吧,点击打开链接里面包含了mac上搭建AS所需要的Android Studio:开发工具SDK:android开发相关的工

2016-05-29 08:12:21 2364

原创 【Android】Android动态代理为SurfaceHolder添加Hook

本博客将会介绍动态代理在Android应用中的对第三方SurfaceView进行镜像翻转中的应用。代理模式的作用是为其它对象提供一种代理以控制对这个对象的访问。比如用户调用了一个“吃饭”的方法,如果不依靠代理,用户可能自己拿碗饭吃就行,而如果通过代理的话,可能连碗都不需要用户自己拿,用户只需要张开嘴,代理来喂就行了,需要注意的是,这里代理除了负责拿碗和喂饭外还可以做其他的任何事情,比如说帮你把饭吹凉一些,或者担心你的体重而偷偷帮你倒掉了一半的饭,又或者是往饭里加点什么奇奇怪怪的东西,谁知道呢,这就是代理干的

2016-05-22 23:46:42 6985 4

原创 【Android】Android自定义带board的圆角控件

介绍圆角控件常用于头像,按钮,图标等,用途十分广泛,而且常常配合board使用。在IOS中,UIVIew的CALayer层已经提供了圆角和board的方法,所以圆角控件的制作非常简单,只需要类似以下简单代码即可实现: view.layer.cornerRadius = 20; view.layer.borderColor = [UIColor yellowColo

2016-05-12 00:51:52 5911

转载 Android插件化原理解析——Hook机制之动态代理

转发必注明出处:Hook机制之动态代理使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-frame

2016-05-03 23:09:55 1430

原创 【Java】使用javaassist修改jar包

由于工作需要,可能会涉及到一些需要对第三方的一些jar包与源码进行修改的情况,这个时候javaassist就可以派上用场。

2016-04-30 10:15:52 5773

原创 Android竖屏模式实现横屏效果

android横竖屏切换是非常耗时间的,而且切换的过程也会存在明显的翻转卡顿效果,那么是否可以在竖屏模式下实现横屏的效果呢?答案是肯定的,这里提供一种方法,其思路是对view进行90度的旋转,而且实现起来非常简单,其效果图如下:首先我们先在layout里排版出一个水平的布局,如下图:是不是很简单?布局代码如下:<LinearLayout xmlns:andro

2016-03-31 23:31:01 6086 1

原创 Mac使用apt-get

和Linux系统不同的是,Mac系统默认是不带有apt-get软件包工具的,所以要想在Mac上使用上方便的apt-get就需要自己来安装它。这里我们需要借助一个强大的工具-fink,

2016-02-29 12:58:57 21541 4

翻译 Retrofit 2.0 (v2.0.0-beta4)

原文地址:Retrofit 2.01.介绍Retrofit可以将你的HTTP API转化为JAVA的接口的形式。例如:public interface GitHubService {  @GET("users/{user}/repos")  CallListRepo>> listRepos(@Path("user") String user);}

2016-02-18 12:28:08 3715 2

原创 【Python】python对象与json相互转换

在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情。下面给出两者转化的方法# -*- coding: UTF-8 -*-import json#自定义类class MyClass: #初始化 def __init__(self): self.a=2

2016-02-12 09:29:48 37438

原创 【LeetCode】9. Palindrome Number

题目:Determine whether an integer is a palindrome. Do this without extra space.思考过程:题目很简单,要求是判断一个数是否是回文数,回文数的定义就是数字翻转之后与原先的数一样的话就是回文数,比如 101 , 22, 1 等,所以要处理这个问题的话,只需要将一个数的最高位换到最低位,次高位换到第二低位,依次全部

2016-02-05 22:19:09 559

原创 【Java】java使用反射访问对象方法和成员变量

虽然java是一门静态语言,但是java的反射机制却给java提供了很强大的动态特性,其特点是能让java支持在运行时才能得知名称与内部结构的类,并能访问其所有的方法和成员变量,包括私有方法和私有成员变量。下面我写了一个比较简洁的测试代码,供参考和使用。测试类//OBClass.javapackage com.obo.javaassistdemo;public class OBCla

2016-02-05 21:10:52 1958 3

原创 IOS强制横竖屏切换

IOS横竖屏切换是一个很纠结的问题,之前项目中用到了,花了长时间查阅资料以及研究,才找到了一个相对靠谱的解决方案,该方案可以处理IOS9系统以上的屏幕翻转,至于IOS9一下的系统,还没有测试过。为了过程的讲解,我先给出一个应用的需求:整个界面就显示一个按钮,当点击这个按钮的时候,界面能从竖屏切换到横屏,当再次点击的时候,又能从横屏切换到竖屏,之后点击循环往复。为了达到这样的需求,我们首先新建一

2016-01-28 22:56:25 4547

原创 【Android】android镜像翻转

Android镜像翻转指的是将屏幕进行水平的翻转,达到所有内容显示都会反向的效果,就像是在镜子中看到的界面一样。这种应用的使用场景相对比较受限,主要用在一些需要使用Android手机界面进行镜面投影的地方,比如说车载手机hud导航之类的。在没办法对硬件进行直接翻转的适合,只能从代码进行着手。下面将会提供两种解决方案,能够解决一部分镜像翻转的情况。

2015-12-04 10:25:07 33475 5

原创 python搭建服务器

python搭建服务器以快捷著称,实际上,我们也可以使用python搭建简易的服务器。

2015-12-01 00:17:14 14505 1

原创 linux搭建git服务器

git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器。在linux上面搭建git服务器是一件非常轻松的事情,只需要按照以下几步就能完成。为了确保整个过程的顺利,最好新创建一个名为git的账号,再使用该账号进行配置。1.安装打开终端apt-get updateapt-get install git如果已经安装过了的就跳过这一步。2.创建仓库终端进入到用来存放仓库的目录,新建一

2015-11-19 23:47:18 2161

原创 IOS毛玻璃效果

最近实习公司的ios项目中需要用到毛玻璃的效果,尝试用了几个方法都不太满意,最后终于找到了一个比较好的解决方案。

2015-11-08 17:15:40 950

原创 Android Studio 将github作为远程maven仓库

github是一样很好用的工具,除了能作为开源项目的搜索工具外,还能用来搭建maven仓库,方便远程的使用。为此,我查阅了一些资料也结合了一些博主的博客,一步步试验最后成功搭建出了这样的maven仓库,在这里我将整个搭建的过程分享给大家。一、准备准备好两样必要的工具 git和gradle1.安装git,直接下载一个GitHub Desktop for Mac安装

2015-10-23 23:05:30 4287 4

原创 【Android】socket局域网通信

我有一段时间特别想实现一个短距离的手机交互软件,比如多人联机小游戏app或者是多人文件共享app等,思来想去,得出了两个方案,一个是使用手机自带的蓝牙设备,通过蓝牙技术实现两个手机的数据交换,而另一个就是使用socket了。蓝牙技术对于android的小伙伴来说并不陌生,传文件什么的常用到,而且网上资料也十分丰富,所以这里不详细说明。而socket则是网络通信的大神级工具,无论c语言也好java语

2015-09-16 09:09:49 3119

原创 【Android】android studio ndk使用例子

首先要配置好必须的环境,详细见我的前几篇的博客http://blog.csdn.net/leilba/article/details/47206231http://blog.csdn.net/leilba/article/details/473813651.为工程设置ndk路径打开android studio,右键工程,选择open Module Setting

2015-09-04 11:23:13 1719

原创 【Android】自定义view-拖动小球移动

Android应用界面中可以看得见的都是由一个个的View所组成的,几乎所有的可视的控件都是基于View写的。在View中提供了对touch也就是手势的捕获和传递,我们可以对View里面手势的重写来达到我们所需要的特性。比如说我们现在要做一款游戏,内容很简单,就是要实现让如图所示的一个黑色的小球在根据手指移动而在手机屏幕内移动。

2015-08-22 09:11:41 4841

原创 mac git+shell实现快速提交push

这几天在补学git的用法,感觉挺有意思的,特别结合了一些简单的shell编程之后,就能比较快速地将代码提交到github上面,这里简单记录一下。首先要先有github的账号,这个直接去https://github.com 申请一个,建立一个空的repository,如果不需要事先创建readme的话,可以跳过3,填好1和2后直接点击Create repository。之

2015-08-17 23:04:56 4095

原创 mac搭建android studio环境

mac搭建android studio环境,在没有翻墙的情况下,捣鼓了两天,终于是在mac上面把android studio 的开发环境弄出来了,先展示一下成果先把用到的资源包都挂出来吧,点击打开链接里面包含了mac上搭建android studio所需要的java jdk7:java开发环境,android必备android studio:开发工具sdk:android开发相关的工具、ap

2015-08-02 12:49:11 1281

原创 android 自定义view 缓存技术

在android应用开发过程中,常常涉及到需要自己来重写一个view。一般情况下,只需要重写view中的onDraw方法就能够实现绘制的工作,但是有的时候,涉及到多层且动态的效果的话,不加处理而直接在onDraw中直接绘制的开销会十分大,这种情况下,应用缓存技术就十分有必要了。缓存技术的原理其实十分简单,就是事先将需要展现的界面全部绘制完成,然后在onDraw里面直接将缓存好的界面展示出来就可

2015-05-13 14:46:44 2408

原创 Android网络通信 Get方法使用

在使用之前,要确认通信环境已经配好了,HttpClient所需要的包也已经导入了,具体的可以见我前一篇博客在使用HttpClient的时候,可以使用的方法包括 Get方法、Post方法、Put方法、Delete方法等,这些都是HttpClient.jar给我做好了的,我们使用的时候只需要调用就可以了。首先,从Get方法的使用开始讲起。Get方法,顾名思义,是从网络获取数据,在使用上面是

2015-03-26 11:29:20 707

原创 Android 网络通信HttpClient的环境配置和注意点

只要是涉及到开发与服务器交互的android应用,就一定会接触到android网络开发。在android或者说是Java中,最常用到的是HttpClient工具,要使用的话首先要先去下载一个 httpclient-4.2.jar 的包,当然版本可以自行调整。导入包很简单,只需要复制到对应工程lib文件夹里面就可以了,如下图所示:

2015-03-26 10:53:51 1159

原创 Android点亮解锁屏幕

在许多应用都要用到在手机待机状态的时候点亮屏幕并解锁屏幕,比如说闹钟应用和重要消息提醒的应用。话不多,首先是点亮屏幕:这里先在AndroidManifest.xml里添加系统权限:然后在java代码里面添加下面的方法,需要使用的地方调用一下即可public void lightScreen(long time);参数是点亮的时长 { PowerManager.WakeL

2014-11-30 09:30:08 897

原创 Android重写View

许多时候需要重写View,对view的重写可以实现很多我们需要的效果

2014-11-20 18:04:38 862

jd-gui for mac

mac jd-gui

2016-04-29

javaassist

javaassist,class文件修改工具

2016-04-29

javassist-rel_3_20_0_ga-22-gccddf79

java修改class工具

2016-04-29

fink-0.39.3

mac os 上使用的fink,安装后可以在mac os x上使用 apt-get等命令

2016-02-29

ios 添加标签

ios动画的基础用法,实现标签的动态添加和动态删除,可以根据界面的宽度自动计算标签的位置,封装成一个ObTagView,方便调用

2015-08-09

android 安装本地apk

用于android程序安装指定目录下的apk

2015-05-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除