
Android
文章平均质量分 62
peakchao
独特编程思想才是真正的巨人、
展开
-
Charles抓包指南
1.进入Charles官网下载。2.安装Charles后,进行注册。help—> register—>input—>ok!Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf43.运行Charles,并进行配置。手机设置代理后,浏览器访问:chls.pro/ssl 会下载证书,然后进入手机设置-安全设置-导入证书即可。小米手机需要第三方浏览器打开链接进行下载,否则下载的.原创 2020-07-23 11:36:07 · 1368 阅读 · 0 评论 -
git 关联仓库
新建项目时没有关联仓库,可以执行以下命令将项目进行推送。1.添加远程仓库:git remote add origin https://github.com/xxx.git1.如果已经存在关联仓库,可将其移除或者添加别名:git remote rm origingit remote add github https://github.com/xxx.gitgit remote add ...原创 2020-03-11 20:50:14 · 358 阅读 · 0 评论 -
Android Design 自定义Behavior
自从Android推出Design后,就广受各位开发者的喜爱,因为以前很多高级特效都需要我们自己去写,而现在Design库内置类很多实用的控件,很多复杂的需求用设个库就能满足,记得以前写自定义控件就经常遇到触摸事件方面的问题,比如外层ViewGroup将事件拦截后,在通过某些特定操作后,将事件还给内部子View处理,这种事件处理就很麻烦,因为在一次事件中外部ViewGroup一旦拦截了事件,子类就...原创 2018-05-02 10:36:01 · 358 阅读 · 0 评论 -
Android-自定义控件-快速索引View
项目需求:仿微信快速索引功能,手指点击索引字母时,对应字母变色,并且有背景颜色,手指离开时,需要记录最后点击的字母。效果预览:话不多说,开撸:1.新建类:public class FastIndexView extends View { public FastIndexView(Context context) { this(contex...原创 2018-04-02 10:31:52 · 924 阅读 · 0 评论 -
Android开发时,那些相见恨晚的工具或网站!
本文转自知乎: Android开发时你遇到过什么相见恨晚的工具或网站?在实际Android开发过程确实会有很多相见恨晚的工具或网站出现,下面是我自己的一些分享。源码网站 https://github.com/googlesamplesAndroid系统每次推出一些新特性,Google都会写一些Demo放在Github上,对于想要了解新特性怎么玩的同学,肯定不能错...原创 2018-04-02 10:31:21 · 629 阅读 · 0 评论 -
ViewDragHelper让你轻松让View动起来
ViewDragHelper 是V4包提供的View拖拽辅助类,用它可以很方便的处理View拖拽,比如探探的卡片功能。1.创建一个ViewGroup控件:public class SlideView extends FrameLayout { public SlideView(@NonNull Context context) { this(contex...原创 2018-04-02 10:27:40 · 370 阅读 · 0 评论 -
一步一步手撸Android通用框架 (六)
这章主要配置统一版本管理:##### 在项目根目录新建配置文件config.gradle:ext { android = [ versionCode : 1, versionName : '1.0.0', compileSdkVersion : 26, ...原创 2018-03-30 17:57:12 · 312 阅读 · 0 评论 -
一步一步手撸Android通用框架 (五)
目前在越来越多的项目中都会使用到RecyclerView,在这样高频使用的场景,我们应该尝试着进行二次封装,将会减少我们很大的代码量。演示:new 匿名内部内的方式: rl_list.setAdapter(new BaseAdapter<String>(mContext, list, R.layout.item_rl_list) { ...原创 2018-03-30 17:56:52 · 237 阅读 · 0 评论 -
一步一步手撸Android通用框架 (四)
手撸一个基类通用视图 相信大家项目几乎都会用到标题栏吧?标题栏几乎每个页面都会用到,而标题栏的尺寸也是一致,所以公共的东西,我们要尽量抽取和复用,所以这里我们提取标题栏到基类,让我们继承基类就能自动加载标题栏,同时我们子类又能灵活控制。标题栏布局文件编写:include_title_bar.xml<?xml version="1.0" encoding="utf-8...原创 2018-03-30 17:56:26 · 269 阅读 · 0 评论 -
一步一步手撸Android通用框架 (三)
自定义注解因为这里要用到反射知识,所以不熟悉反射的需要去复习下哦。新建包injection,在包下定义注解类Id@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Id { /** * 需要绑定的控件id * * @re...原创 2018-03-30 17:56:01 · 317 阅读 · 0 评论 -
一步一步手撸Android通用框架 (二)
手撸一个BaseActivity和BaseFragment为了方便,我们抽离公共方法,提供基类接口:/** * 基类公共接口 * Created by Chao on 2017-12-23. */public interface BaseInterFace { /** * 子类布局 */ int getLayout(); ...原创 2018-03-30 17:55:24 · 210 阅读 · 0 评论 -
一步一步手撸Android通用框架(一)
致即将逝去的2017,2017对我来说是碌碌无为的一年,因为公司产品迭代太快,加之多项目并行,没有多余的时间去做更多的事情,但是我不能就这样屈服,所以,趁着今天阳光明媚,撸码吧! 为了方便调试和后期上传jcenter,所以将框架以library形式建立,结构如下: 此框架定义为快速开发框架,应包含我们Android开发中常用的工具类,Activity和Fragment...原创 2018-03-30 17:54:57 · 425 阅读 · 0 评论 -
Android自定义View-一个拖动控件
好久没写博客了,最近一直忙着赶项目,趁着中午午休,更一篇博客吧,时间有限,直接进入正题吧。效果继承合适的View。public class VerticalTouchImageView extends android.support.v7.widget.AppCompatImageView{}构造器 为了方便,构造里通过this调用其它构造方法,我们就可以把初...原创 2018-03-30 17:52:55 · 654 阅读 · 0 评论 -
免费开放接口API
为了方便各类开发者,现提供免费开放Api接口,所有接口均无使用限制,返回格式全是JSON,所以基本能满足大家的开发需求,但请各位不要将这些Api接入正式项目,因为有一些不稳定因素,目前服务器购买时长是三年,如果到期,我会自动续费,这些Api是我平时业余时间编写,可能有些不能满足需求的情况,请大家在留言区提出来,或者大家写Demo需要一些有关联的数据等等,都可以在留言区告诉我,我有时间一定会给大家处...原创 2020-04-07 18:52:50 · 385267 阅读 · 376 评论 -
Android-快速开发框架2017-持续更新(一)。
最近闲下来,整理了一部分代码,这里将简单的介绍一下。测试效果(只演示框架功能,界面什么的就别吐槽了,由于录像工具问题,换肤那里有点问题,非框架原因):该框架旨在帮助程序员快速开发,很多开发常用的模块都进行了封装,大部分开发所需都已经集成,例如:网络请求:1.对xUtils3的网络请求进行了封装,回调泛型解析,错误码自定义等。 2.目前主流的RxJava+Retrofit网络请求封装,采用Gson回原创 2017-04-01 11:58:04 · 7084 阅读 · 8 评论 -
Android-自定义View-自定义进度条
眼看6月到了,由于前段时间域名备案等原因,服务器关闭了差不多一个月,所以没更新文章,索性今天补一篇吧,准备写一个简单的自定义View,就拿进度条做这个需求吧,虽然简单,但是也包含了基本自定义View的几要素,比如自定义属性、重写测量、重写绘制等功能。需求分析:1.进度通过绘制线条实现。2.进度文字跟随当前进度实时变化,并非一直显示在固定位置。3.控件未给出宽高属性时,我们需要...原创 2018-06-04 16:04:54 · 1781 阅读 · 0 评论 -
IntentService的使用以及与Service的区别
偶然间在SDK目录下看到IntentService这个类,于是使用了一番,就使用场景来说很多,比如APP启动时,做一些初始化操作,或者一些需要后台处理的耗时任务,看到这里你不要误会,因为IntentService并非在主线程运行,以下是源码,你也可以在Sdk\sources\android-26\android\app 目录下找到:/* * Copyright (C) 2008 The ...原创 2018-06-12 11:33:47 · 2103 阅读 · 0 评论 -
RecyclerView 使用ItemTouchHelper类实现拖拽排序
记得以前还没有RecyclerView的时候,做拖拽排序很麻烦,而现在因为RecyclerView的诞生,很多复杂的操作都可以完美实现了,例如轮播、流式布局等等。先写一个简单的RecyclerView例子,然后慢慢拓展吧。public class MoveItemActivity extends AppCompatActivity { private RecyclerVie...原创 2018-06-07 17:33:03 · 2042 阅读 · 0 评论 -
RecyclerView使用SnapHelper打造ViewPager
RecyclerView在24.2.0版本中新增了SnapHelper这个辅助类,用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。SnapHelper是一个抽象类,官方提供了一个LinearSnapHelper的子类,可以让RecyclerView滚动停止时相应的Item停留中间位置。25.1.0版本中官方又提供了一个PagerSnapHelper的子类,可以使Recycl...原创 2019-07-26 10:27:59 · 583 阅读 · 0 评论 -
ReactNative原生Android交互
在开发中,我们经常遇到需要和原生交互的场景,ReactNative已经给我们预置了相关接口,接下来简单使用一下吧。1.初始化一个空项目,用作示例:react-native init Democd Demoreact-native run-android2.用Android Studio编写JAVA代码:新建ToastModule类继承ReactContextBaseJavaModu...原创 2019-05-09 15:35:51 · 634 阅读 · 0 评论 -
Android NDK编译libjpeg-turbo压缩图片
Android开发中,我们经常要面对图片压缩,大部分人使用Android Bitmap进行压缩,还有一些使用libjpeg压缩,之前有用过libjpeg,压缩效果相当惊艳,在保证图片损失较小的同时,还极大的减小了图片体积,不过这次我们基于libjpeg-turbo做图片压缩,据官方说速度提升2-6倍。libjpeg-turbo is a JPEG image codec that u...原创 2019-03-23 13:50:36 · 2041 阅读 · 2 评论 -
给WEB网页套上一个壳,变身APP
最近打算写一些前端网页,为了方便查阅,突发奇想,将前端网页嵌套在APP内部,而APP可以安装在手机,岂不是可以随时查阅了么,比如自己写的博客,让它成为一个独立的APP安装在手机上,岂不是锦上添花?1.仓库地址2.克隆代码(建议直接从仓库fork):git clone https://gitee.com/Chaoc/PeakWebApp.git3.修改个人配置:#打开项目根目录下conf...原创 2019-01-29 16:22:44 · 18310 阅读 · 16 评论 -
Android反编译-编译源码-修改源码-打包-签名全过程
本案例讲述一个Apk反编译全过程,包括:编译源码、修改源码、打包、签名。案例展示:首先准备反编译工具:dex2jar(dex转jar)dex2jarjd-gui(对Jar进行反编译)jd-guiapktool(对apk进行反编译)apktoolbaksmali(将dex文件编译成smali文件)baksmali工具截图:新建项目,生成一个APK:复制【app-de...原创 2018-10-11 19:42:26 · 2137 阅读 · 0 评论 -
ViewDragHelper侧滑关闭再升级-仿微信
继上篇文章Android 利用ViewDragHelper打造侧滑关闭控件,因为上次有事出门了,没有扩展这个功能,今天刚好周末有点时间,索性补上吧。效果展示:思路梳理:执行当前页面侧滑关闭的时候,需要上个页面同步滚动,从而达到联动的效果,联动效果很简单,使用属性动画即可,问题是怎么拿到上个页面的View?我们知道Activity可以拿到当前页面的View,所以我们需要拿到上个页...原创 2018-09-15 14:54:48 · 350 阅读 · 0 评论 -
Android 利用ViewDragHelper打造侧滑关闭控件
效果:核心思想:自定义ViewGroup控件,利用ViewDragHelper让此控件拥有滑动功能。将此控件附加到每一个Activity。代码很简单就不一一解释了,代码备注很详细,所以直接贴代码了:import android.app.Activity;import android.content.Context;import android.suppor...原创 2018-09-09 12:43:20 · 370 阅读 · 0 评论 -
Android-仿QQ/微信-全局新消息提示
最近赶项目比较忙,趁周末补点文章。效果预览:开发需求:这个弹窗一般用于新消息展示,需要是全局的,所以采用WindowManager来做,可以显示在其他应用之上。一般消息弹窗会在几秒内消息,否则会影响用户体验,所以还需要延时关闭。消息弹出后要给用户选择的机会,所以用户可以手动移除弹窗,这里采用手势来达到取消显示的目的。撸码:1.先撸一个类,构造传入上下...原创 2018-09-08 11:50:02 · 5332 阅读 · 10 评论 -
Android-自定义-RecyclerView.LayoutManager
不得不说RecyclerView真的很强大,例如无限轮播Banner,滑动卡片等都有RecyclerView的版本,他们是怎么做的呢?答案是基于RecyclerView.LayoutManager,我们可以自定义RecyclerView.LayoutManager,然后控制RecyclerView内部Item的位置以及大小达到我们想要的效果,为了简单,我们先自定义一个RecyclerView.La...原创 2018-08-15 16:47:50 · 1086 阅读 · 0 评论 -
Android-自定义项目通用Button
场景:经常在项目中高频使用按钮,比如 完成、下一步等有圆角且有按下效果的Button思路:写个自定义Button,编写自定义属性,方便在xml中设置圆角,颜色等属性,按下的效果一般是用shape写背景方式完成,为了方便,shape不在xml编写,改为代码编写。1.编写自定义控件:public class ShapeButton extends AppCompatButton...原创 2018-08-10 14:58:10 · 5701 阅读 · 1 评论 -
Android分享-微信、Facebook、Google
前言:因为项目涉及到国际化,故而国内需要集成微信分享,国外需要集成Facebook、Google,这里大致记录下集成过程,希望做笔记的同时也能给同行踩踩坑。 分享集成官网: 1.微信:https://open.weixin.qq.com/cgi-bin/appdetail 2.Facebook:https://developers.facebook.com/docs/andro...原创 2018-07-30 14:53:34 · 939 阅读 · 0 评论 -
Android-贝塞尔曲线的应用
什么是贝塞尔曲线贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。主要结构:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。展示:...原创 2018-07-12 10:57:38 · 1348 阅读 · 0 评论 -
RecyclerView 自己动手绘制ItemDecoration分割线
因为RecyclerView越来越普及,使用场景也越来越多,所以在如此高频使用的情况下,分割线也是必不可少的,但是我们经常在不同的场景下使用,对分割线的需求也不一致,导致自己手动编写的分割线并不能满足日常需求,所以我比较常用的做法是在Item布局中编写分割线,久而久之还是觉得用着不方便,索性就写一个扩展性好一点的分割线吧。使用示例://线粗细1dp,线两边边距10dp,线颜色红色...原创 2018-06-07 18:17:18 · 1362 阅读 · 0 评论 -
Android Studio 升级 2.4 支持Lambda表达式。
如何在Android Studio上应用Java 8?这里首先需要说明下在Android Studio(下文中使用AS代指)上使用Java 8会遇到的坑和问题。一般我们在AS上应用Java 8的方式是通过使用Jack来进行编译,使用方法如下:android { ... defaultConfig { ... jackOptions { enab原创 2017-04-30 12:42:26 · 1404 阅读 · 0 评论 -
Android 7.0你需要注意的一些坑。
一.安装apk报错:android.os.FileUriExposedException1.在AndroidMainifest.xml文件中添加:<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.原创 2017-03-23 09:52:06 · 7428 阅读 · 0 评论 -
AndroidStudio 使用aar
aar 是一个类似于 jar 的文件格式。但是他们之间是有区别的。jar :仅仅包含class和清单文件,没有资源文件。aar :包含了class文件和资源文件。说白了就是Android的专属“jar”将代码打包成aar文件,可以在一定程度上加快 AndroidStudio 的速度。尤其是将 Module 打包成 aar 文件,提升的效果很显著。新建的Module是没有这个文件夹的,执行命令 ./g原创 2016-10-12 09:47:42 · 9189 阅读 · 0 评论 -
Android Studio下对资源进行分包
先看一下分包后的样子,不只是layout,还有drawable及value,方法很简单,配置我们的build.gradle文件:android { ... sourceSets { main { res.srcDirs = [ 'src/main/原创 2016-10-12 09:23:14 · 10507 阅读 · 1 评论 -
Android JAVA文件遍历小妙招
开发中,我们经常需要判断或者过滤我们符合要求的文件,这里给广大开发者发个小妙招吧,自己做影音播放的时候用到了,因为媒体库音乐对很多未知格式的媒体文件识别不了,就需要扫描指定格式,下面贴出代码:File file=new File("D:\\");File[] files=file.listFiles();for(File f:files){if(f.isFile()){if(f.getNa原创 2016-07-19 18:28:14 · 12422 阅读 · 0 评论 -
Android 获取存储路径
经常我们会用到对文件的操作,而这时我们往往需要对手机内的文件进行操作,但是如何知道手机各个路径呢,Android为我们提供了Api。Environment 方法: //解释:返回 File ,获取 Android 数据目录。 方法:getDataDirectory() //解释:返回 File ,获取 Android 下载/缓存内容目录。 方法:getDownloadCacheDirect原创 2016-07-19 11:53:27 · 35973 阅读 · 0 评论 -
Android 屏幕旋转(横竖设置)
经常在开发中,比如视频播放这种情况,当用户点击全屏播放的时候,我们需要切换手机屏幕,当然我们可以从像以前一样,在AndroidManifest给Activity设置好预先设置,然后通过点击进入这个页面。//横屏设置;android:screenOrientation="landscape" //竖屏设置;android:screenOrientation="portrait" 但是实际情况原创 2016-07-18 15:27:39 · 14309 阅读 · 0 评论 -
Android 快速开发框架 集成框架
由于自己经常写项目,没有一个方便开发的一套框架怎么行,所以在日常开发总自己整理了一套,请各位过目,不喜勿喷。一个新项目搭建需要具备的环境:先导入我制作的jar包。添加必要的权限。需要一个Application初始化数据,下面开始调用示例:效果如下:截图太累,今天就到这里了,集成的还有很多,基本一个APP开发常用需要的功能都封装好了,访问网络,加图,ViewPager 优化无限循环适配器,原创 2016-06-15 16:55:22 · 92526 阅读 · 17 评论 -
Android Studio 作者格式添加
团队开发的时候,往往我们需要区分模块,添加作者格式能很方便的解决一些问题,如图:/** * 创建日期:${DATE} on ${TIME} * 描述: * 作者:张智超 ${USER} */Eclipse添加:原创 2016-06-15 13:22:16 · 7664 阅读 · 0 评论