自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 StarUML画流程图

最近项目功能基本开发完了,准备把整个app的所有功能流程梳理一遍,就在网上搜了下有什么好用的软件,很多人推荐StarUML,于是就下载了,但是要收费,不买也能用,但是还是不放心,就去搜了下破解的方法,也很简单,我的是mac电脑,破解方法的地址:https://www.jianshu.com/p/2942a8422d04。 安装破解好以后,就开始使用,打开以后就是一脸懵,全英...

2019-09-29 17:30:13 34451 9

原创 最新盟友推送

公司项目用的umeng推送版本比较老,但是推送一直都很正常,所以一直没有更新sdk,这两天遇到问题了,问客服,说让更新一下sdk,我就去下载更新了,我首先把推送demo下载下来,结果发现新版的推送sdkdemo,真的是超级简洁,截图看下。就两个类,真的是太简洁了,里面只有推送的配置和注册,什么都没有了,记得很久之前的demo还是很详细的,这要是让一个新人接入sdk还得好好看...

2019-08-27 20:21:36 436

原创 友盟umeng分享微信和朋友圈,图片太大,拉起微信很慢的处理方案

今天测试提了个问题,说微信分享反应很慢,而且说上个版本都还是快的,这个版本就慢了,我回忆了下,这个版本关于分享的都没做改动啊,我就去调查了下原因,原来是分享时候的图片超级大导致的,上个版本分享的图片很小所以很快,原因找到了,开始着手解决。1 分享的图片是服务器返回的,所以大小由服务器控制,既然图片太大,好几M,那么只需要服务端对图片压缩处理一下再返回给我们就好了,友盟分享的官方文档给的图片大小...

2019-03-19 16:58:35 3315

原创 Android ijkplayer视频播放 有声音没画面或者很卡(不同的视频源,原因也不同,我只记录一下我们项目遇到的)

前两天周末的时候,开发群里,有领导反应有一个视频,安卓手机只有声音,没有画面,领导让我找一下原因,首先我肯定要看一下这个视频本身是不是有问题的,我下载下来后,是可以正常播放的,而且h5和ios都可以正常播放,只有我们安卓的手机播放的时候只有声音没有画面,然后猜测是我们安卓的播放器的问题,可能是我们的播放器不支持这种视频格式,然后把下载下来的视频,使用ffmpeg命令ffprobe -i /User...

2019-03-06 18:07:42 6732

原创 适配器模式以及在Android中的使用

先来通过ijkplayer中的IjkMediaPlayer的设计,来看一下适配器模式是什么样的,首先先看一下IMediaPlayer这个接口,下面是代码public interface IMediaPlayer { int MEDIA_INFO_UNKNOWN = 1; int MEDIA_INFO_STARTED_AS_NEXT = 2; int MEDIA_INF...

2019-02-28 10:41:56 390

原创 超简单的新手引导页的实现设计(使用DialogFragment)

通常一个app都会有新手引导页,就是进入app后打开相应的页面会出现引导页,这里是用DialogFragment实现一个简单又比较完善的新手引导页功能。public class GuideFragment extends BaseDialogFragment implements View.OnClickListener { private static final String ...

2019-02-27 18:06:09 931

原创 Android studio 打jar包,只打包含src下的java代码

      最近接到一个新的任务,就是对接游戏部门的sdk,原来负责sdk的同事走了,他是用eclipse写的sdk,走的时候告诉我如何用eclipse把sdk的java代码打成jar包,但是我一直都是用的Android Studio,所以就把sdk的项目转成AS项目了,但是游戏那边需要的是java代码的jar包,AS生成的是aar,并且aar里面的classes.jar里面除了java代码,还把...

2018-11-05 10:49:27 1066

原创 (云信)记录接网易云信android版遇到的一些问题

在项目开始的时候,聊天第三方sdk选择了网易云信,原因很简单,我们的竞争对手用的就是云信,所以老板要求也用这个sdk,在接入云信sdk后,遇到了一些问题,现在记录一下。1 根据我们项目的需求,我们创建了一个活动小组(同时也会创建一个云信的群组),创建者可以取消这个活动,取消这个活动的时候,服务器要解散群组,这个时候,我们客户端依然会显示这个解散的群组,我们理解的是解散了就应该自己删除掉,进入app...

2018-06-14 11:49:02 2870 4

原创 C++基础

C++基础1、C++对C的扩展1.1程序设计方法的发展历程面向过程的机构化程序设计方法设计思路– 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构– 按功能划分为若干个基本模块,形成一个树状结构。– 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。–

2017-07-07 13:09:38 370

原创 优先队列的简单实现方式

很多情况下我们会收集一些元素,处理当前键值最大的元素,然后再收集更多的元素,再处理当前键值最大的元素,如此反复。这种情况下,一种合适的数据结构应该支持两种操作:删除最大元素和插入元素,这种数据类型叫做优先队列。       一种基于堆得优先队列简单实现方式:       public class MaxPQ> { private Key[] pq; private int

2017-06-10 12:25:45 568

原创 多线程详解

最近要面试,所以整理一下多线程的知识点。       进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间线程:进程中的一个执行单元,负责进程中的程序的运行,一个进程中至少要有一个线程多线程:一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序多线程的应用:实现多部分程序同时执行,专业术语称之为并发多线程的使用可以合理使用CPU的资源,如果线程过多会

2017-05-08 00:19:30 404

原创 TCP UDP协议网络通讯

网络通讯的要素:  1.IP地址:网络中设备的标识,不容易记忆,可以使用主机名    本地回环地址127.0.0.1   广播地址X.X.X.255  2.端口号:用于标识进程的逻辑地址,是不同进程的标识。     有效端口号:0-65535,其中0-1024是系统使用或者保留端口  3.传输协议:通讯的规则,常见协议:TCP UDP       常见网络架构:C/

2017-05-07 14:21:57 758

原创 视频直播流程以及ffmpeg编解码流程

去年最流行的非视频直播莫属,出现了几百家的直播平台,毕竟自己也是在直播平台做开发的,然后就写一篇关于直播的文章。这里只说流程,具体的实现就不说了,应付面试应该还是可以的。      先上一张简单的流程图:      上面这张图就是视频直播的流程图,想要开发一款自己的视频直播软件不麻烦,现在有好多直播sdk,比如腾讯视频云,金山视频云,易视云,7牛视频云,等等,使用它们的sdk能很快

2017-05-07 12:43:07 5731 1

原创 Handler looper meessage messagequeue 之间的关系

前天面试的时候被问到了,所以按照自己的思路阐述一下她们的关系:       looper 使一个普通线程变成looper线程也就是循环工作的线程,变成looper线程后,就会在looper线程中生成并维护一个消息队列也就是messagequeue,通过loop()方法不断从消息队列中取出消息也就是message,这个时候会有个很重要的方法,就是这个方法把handler联系到了一起,这个方法就是

2017-05-07 11:38:25 543

原创 GitLab 与 Gerrit

GitLab 与 Gerrit 相信大家看到这里,会发现gitlab比gerrit多了许多功能,比如说Issues,Wiki等。我们从几个方面对比下2者:###开发风格: gitlab的特点是一个人维系一个分支。 gerrit的特点是一个团队维系一个分支。(这里的分支对应一个业务需求)###权限管理:

2017-04-14 11:38:41 11527 2

转载 最常用Git命令

10组最常用Git命令     转自10组最常用Git命令如今Git已是Andorid开发必备技能,但那么多Git命令,需要了解多少呢? 知名博主阮一峰根据自身经验整理了常用的10组命令,一起来看看吧。我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个

2017-04-14 11:26:26 357

原创 Android 内存优化

我们知道,Dalvik虚拟机实则也算是一个Java虚拟机,只不过它执行的不是class文件,而是dex文件。虽然Android 4.4发布了一个ART运行时,准备用来替换掉之前一直使用的Dalvik虚拟机,希望籍此解决饱受诟病的性能问题。但是这里我们先通过罗升阳的Dalvik虚拟机简要介绍和学习计划了解Dalvik虚拟机的内存管理与垃圾回收,对我们分析Android的内存优化会有很多的启示的。

2017-04-13 20:19:42 550

原创 Android 属性动画来实现帧动画的炫酷效果

最近公司让实现一个很炫的动画,最先想到的是使用帧动画,后来想到图片太多,使用帧动画太耗性能,由于图片多还很可能出现oom,所以决定使用属性动画来实现,下面是动画的效果图        :       下面来说一下思路:       首先根据动画的效果来写一下布局文件:<FrameLayout xmlns:android="http://schemas.android.com/ap

2017-04-13 14:35:21 2548

原创 SharedPreferences+okhttp+gson+picasso实现简单的离线缓存

先来说一下思路,先试用okhttp从网络获取到数据,然后使用SharedPreferences保存数据,然后使用gson解析数据结合picasso把文字和图片展示出来,很简单,下面来实现一下。       首先引入okhttp,在gradle中添加依赖  compile 'com.squareup.okhttp3:okhttp:3.5.0'          添加依赖后开始使

2017-04-04 18:14:57 383

原创 SharedPreferences

SharedPreferences       对于这个接口,大家肯定很熟悉,一定经常用到,怎么翻译一下呢,共享参数,共享设置,共享偏好,共享内容,我觉得共享内容比较形象。      Interface for accessing and modifying preference data returned by getSharedPreferences(String, int

2017-04-01 23:36:10 126

原创 java 多个第三方jar包冲突解决方案

最近公司在接入腾讯的ysdk(上班以来接第三方sdk最艰难的一次),在这简单说一下哈,就是他们的逻辑太复杂(我觉得有点乱),ysdk和msdk到最后才搞清楚,因为最初是接入他们的msdk,接着接着让换ysdk,接就接呗,又不是没接过,根据他们的文档就开始接,接着接着就遇到问题了,jar包冲突,这是第一个问题,先暂且不说,然后是第二个问题他们的so库放到我们的项目中就被压缩变小的很多,所以就报错,弄

2017-03-11 18:23:05 5639

原创 (Android基础)activity 和 fragment互相传值

一,activity往fragment传值,大家都知道不能通过fragment的带参数的构造函数来传值,为什么呢,原因如下:        Avoid non-default constructors in fragments: use a default constructor plusFragment#setArguments(Bundle) instead        From

2017-03-05 14:03:01 4396

原创 gradle compile 下载不了依赖库

首先确定你当前的jdk版本是不是依赖库要求的,我遇到这个问题的时候,用的是jdk1.8,但是用的是Android studio 目录下自带的,要改成本地的,然后还是有问题,还是下载不下来,compile里依赖的某些库,然后上网搜了搜,得信任证书,命令是sudo -E ./importcert.sh,然后提示你是否信任此证书,输入是就OK了,刚开始先用命令行编译,./gradlew build,如果

2017-01-23 11:14:40 2295

原创 RxBus 用法学习总结

文档上都是代码,就是没注释,刚开始看的时候,有些地方不知道咋回事,记录一下。 添加到自己的项目中,很简单 compile ('com.hwangjr.rxbus:rxbus:1.0.5') { exclude group: 'com.jakewharton.timber', module: 'timber' }       使用方式有两种,直接使用com.hwangjr.rx

2016-12-05 18:55:40 3057

原创 Android 组合动画包括四种属性动画和一种帧动画,自由组合,动态控制,只需在服务器修改json。

先说明一下,由于我们项目中每个版本都会让加一些礼物动画效果,但是产品说想不用更新版本,能动态添加,也就是说想加什么动画,不用我们动代码了,他们只需要把动画的图片放到服务器就行了,但是每个动画的效果都是不一样的,所以想实现能适合所有动画的import java.io.File;import java.lang.ref.SoftReference;import java.util.List;

2016-09-12 13:44:46 1099 2

原创 打正式包混淆时遇到的坑,不要把依赖包里的model给混淆了,否则json解析的时候会找不到model,导致加载不出数据,都是null

昨晚上线的时候,打了正式包,混淆了代码,测试测出了一个问题,就是新加的一个功能没有数据,页面是空白的,然后就找原因,看接口里有没有返回数据,结果已经返回了数据,但是jsonbean里就是没有数据,我们用的是gson,为什么没有解析到数据呢,难道是gson出问题了,接口里的数据结构有问题,看了下json格式是没有问题的,到底是怎么回事呢,没打正式包之前是没问题的,想来想去就是只有混淆这一区别了,看了

2016-08-31 10:32:08 1310 2

原创 mac 反编译apk

我也只是说一下简单的步骤,具体反编译的原理,我自己也不太懂,大家可以google.反编译用到的工具,1 apktool.jar,apktool文件,这个是可以把apk里面的资源文件反编译出来,很简单只需要一行命令  ./apktool d xxx.apk,就可以了。                                可能说的有点简单,把apktool.jar,apktool这两

2016-07-10 15:50:07 435

原创 SpannableString,多个textview合为一个,还可以为TextView添加图片

最近产品提出一个需求,就是模仿微信朋友圈,然后就想怎么做,本文主要来讲的是SpannableString,关于朋友圈设计的其它知识点就不说了。其实用起来很简单,难搞的地方就是位置的计算,一不小心就会角标越界,接下来会说一下SpannableString的常用的用法。       为textview添加文字和图片。        String content = "小凡送给主播跑车3个";

2016-07-09 16:26:00 1285

原创 Android studio 编译很慢的终极解决方案

打开Android studio 的右侧栏的Gradle选项,找到你的应用名,点开,找到install文件名,继续点开,找到installxxxDebug,选择它,以后再运行项目就选择它,这样速度会快很多很多。

2016-07-05 09:38:44 1155

原创 Error:The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location:

在Android studio 或者intellij idea中新创建一个项目或者打开一个存在的项目时,有时候会出现Error:The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: /Users/guoliuya/Desktop/tools/android-sdk-

2016-06-23 15:59:14 25017 4

原创 git 创建分支单独开发一个新功能,然后合并到dev上的三种方式

首先是创建一个分支,比如我想开发一个动画的新功能,可以git checkout -b anim,此时就切换到这个分支上了,你可以开发你的新功能了,开发完新功能以后呢,重点要讲的是这个,有很多方法,我这里说三种方法。      1.打patch 打patch之前,肯定要先git add . 然后git commit -m "" . 然后就能打patch了,git format -patch -1

2016-04-06 14:48:40 5044

原创 Android studio 编译很慢解决方案

打开file--other settings-->default settings里面有个compiler,compiler里有个build process heap size 这里你可以根据你电脑的配置自己设置一个值,我设置的是1700,然后在下面还有个android compilers 有个maximum heap size这里同样可以自己根据自己的电脑的配置设置,我设置的还是1700,然后在

2016-02-29 14:58:12 1053

原创 解决Android视频播放横竖屏切换播放问题!

在以前的版本中只要在AndroidManifest.xml文件中对activity指定android:configChanges="keyboardHidden|orientation"属性,转屏的时候就会不再重新调用OnCreate()函数,而是调用onConfigurationChanged()。但是在自从android3.2以后,再这样设置的话,会发现转屏后仍然会调用OnCreate(),而

2016-02-23 16:25:06 5546

原创 使用gradle打包时遇到的问题!

先贴上一段位置文件 buildTypes { release { // 不显示Log// buildConfigField "boolean", "LOG_DEBUG", "false"//// minifyEnabled true// zipAlignEnabled true

2016-01-29 15:19:09 5922

原创 解决Zxing解析本地图片二维码,识别率低,识别不出来的问题!

最近项目里让添加本地图片扫描二维码的功能,本来已经加了扫一扫的功能,产品非得让加上本地图片扫码功能,我看了下搜狐和优酷,他们都是只有扫一扫,没有本地图片扫码,我就想着,产品让加就加吧。在网上搜了搜,很快就搜到了一个demo,也很快就加到我的项目中了,截取了一张二维码的图片,识别出来了,OK,功能加好了,真开心。后来测试一测,说二维码功能没有添加,我就和他们理论,让他们过来复现,结果真的是识别不

2015-12-31 15:53:14 47985 26

原创 Android studio 多渠道打包

首先肯定是配置gradle,百度一下就知道了,我的是mac下配置的,sudo vim ~/.bash_profile ,然后设置环境变量GRADE_HOME=/Users/Admin/gradle;export GRADE_HOMEexport PATH=/opt/local/bin:/opt/local/sbin:$PATH:$GRADE_HOME/bin最后保存,esc先退

2015-09-07 15:40:51 74

转载 Handler消息传递机制之Looper

Android的消息处理有四个核心类:Handler,Looper,Message,MessageQueue,都在android.os包中。首先分析线程的魔法师Looper:Looper的字面意思是“循环者”,它被设计用来使一个普通线程编程Looper线程。Looper线程就是循环工作的线程,一旦有新任务就执行,执行完后继续等待下一个任务,这就是Looper线程,使用Looper类创建Lo

2015-07-13 11:25:46 437

原创 分享一个自己应用中判断应用运行状态是前台还是后台

public  boolean isBackground(Context context) {    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List appProcesses = activityManager.ge

2015-07-13 11:10:36 420

转载 mac 下配置ant和打包

今天早上来的时候,突然想到ant,因为我看到一句话,java程序猿,怎么可能不会用ant,所以今天研究一下怎么用!首先说明的是我用的是mac一体机,要使用ant,我整理了一下几个步骤:1.去官网下载ant,http://ant.apache.org,然后解压到一个目录下。2.配置环境,配置mac下安装ant的环境,我是在网上搜的,首先 sudo -s ,获取root权限,会提示你输入密

2015-07-09 14:53:49 906

空空如也

空空如也

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

TA关注的人

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