android
chsmy2018
学无止境,任何技能都是慢慢积累出来的。
展开
-
Gradle之自定义插件
前面两篇了解了Gradle的基础知识,最终目的就是为了自己能写出Gradle插件来解决现实项目中的问题。现在Gradle自定义插件用的越来越广泛,插件化,热修复,性能优化,指标检测,多渠道打包等等都会用到Gradle插件。自定义Gradle插件的方式有三种,代码都差不多,都是必须实现Plugin<T>这个接口,然后实现接口中的apply方法。只不过写的地方不一样。第一种在build...原创 2019-11-27 12:04:58 · 368 阅读 · 0 评论 -
WebView中调用系统相册或拍照上传
今天项目接入了别的项目中的H5页面,接完后发现上传图片的时候点击没反应,后来才知道android中WebView上传图片还得自己实现。实现方法记录一下:public class OADetailActivity extends BaseActivity { private WebView wv_project_brief; private ProgressBar progres原创 2016-06-30 17:33:37 · 4326 阅读 · 4 评论 -
Android仿京东筛选
效果: 项目中用到了一个侧滑筛选的功能。看到UE第一感觉用PopupWindow做加个进入和退出的动画。后来突然发现弹出的部分还能进入另一个界面,这是神马鬼,筛选里面还有筛选,马上找产品聊天,这个设计挺奇葩的呀…..,产品拿出京东来给我演示下人家就是这么做的…..我默默的回到座位开始干活…..。既然PopupWindow不好做用啥呢,侧滑可以想到的一般就是SlidingMenu和DrawerLay原创 2016-10-22 17:43:48 · 10436 阅读 · 0 评论 -
Android中关于文件的操作
最近项目中用到了离线上传下载对文件的增删改查 记录一下。 首先是对文件的压缩和解压缩。因为上传下载都是通过zip文件package com.chs.ziptext;import android.graphics.Bitmap;import android.util.Base64;import android.util.Log;import java.io.ByteArrayOutputStre原创 2017-02-22 11:01:54 · 277 阅读 · 0 评论 -
Android 编译神器Freeline
工欲善其事必先利其器。随着我们开发的项目功能越来越多,我们的项目的体积也会越来越大,相对应的我们运行我们的项目的时候编译的速度也会越来越慢。就比如我现在的项目,每次改完一个地方后,重新运行都需要50多秒,这还是在我的电脑是固态硬盘,16G运行内存的前提下的时间。真是相当的痛苦。所以当有一个比较复杂的效果开发的时候我都是先写一个小demo调的差不多的时候在集成到项目中。AndroidStudio2.0原创 2017-01-07 15:07:59 · 536 阅读 · 0 评论 -
Android 删除文件夹中的图片并同步到媒体库
问题:项目中用到了上传图片,上传之前压缩的时候图片缓存到了本地的一个文件夹中,清除缓存的时候操作是吧缓存的文件夹直接执行delete()操作。但是在去图片框架中选择图片的时候,删除的文件夹还在,里面的图片无法查看。造成问题的原因就是缓存文件夹中的文件删除后安卓媒体数据库并不能实时刷新,我们需要手动让系统去更新数据库中的数据. 通知系统文件改变了数据库也要刷新.安卓4.4之前可以直接发一个广播Int原创 2017-05-26 17:31:46 · 6183 阅读 · 0 评论 -
ButterKnife编译时注解探秘
安卓中很多有名的开源框架都运用了编译时注解,如ButterKnife,EventBus , Retrofit , GreenDao等。所以作为一个合格的安卓开发者,学会运用编译时注解是非常有必要的。下面就仿照ButterKnife的view的注入写一个例子来走一遍编译时注解的流程。第一步新建module1、创建一个module起名为annotation作为注解类的module 用来保原创 2017-09-21 15:13:20 · 395 阅读 · 0 评论 -
Android文件选择器
项目中用到文件选择器,功能是可以筛选出常用的文件也可以在所有的文件中选择。 先看一下效果图: 图中,左面是可以选择常用的文件,右边就是从手机跟目录开始一层一层的选择。 UI 方面就不多说啦,使用两个fragment切换 ,数据通讯通过自定义接口。关键是数据是怎么获得的。全部文件String path = Environment.getExternalStorageDirectory().get原创 2017-09-15 18:10:50 · 9375 阅读 · 9 评论 -
Android组件化开发实践
前两年安卓插件化开发在国内进行的如火如荼,出现了不少插件化的框架,360,携程等都开源了比较好的插件化框架,插件化开发确实是可以给开发者带来很大的方便。不过插件化需要解决的问题太多,动态加载类,资源等等,首先就需要对安卓的打包机制,运行机制等等了解的很清楚。对个人的技术要求非常高,这些开源框架或多或少都会有一些bug,在我们改框架的实现机制不理解的情况下,出现的一些bug会让我们手无足措。而且对于这原创 2017-09-28 15:48:52 · 1585 阅读 · 0 评论 -
Android Tinker集成采坑
官方文档 https://github.com/Tencent/tinker/wiki官方demo怎么配置都可以从demo中找到 https://github.com/Tencent/tinker/tree/dev/tinker-sample-androidTinker提供了两种接入方式,命令行接入和gradle接入。正常的项目中都基本都使用gradle,一次配置好以后就可以很方便的使用了,所...原创 2019-06-02 12:27:17 · 773 阅读 · 0 评论 -
Android Hook入门
Hook 英文意思是钩子,可以把一段执行着的代码钩下来,然后加入我们自己的逻辑,最后在放回去。比如我们可以Hook住一段系统代码,在执行系统代码之前加入我们自己的逻辑。Hook技术主要用到java反射和java动态代理两个知识点,下面来个简单的例子,我们来Hook一个按钮的点击事件 Button button = findViewById(R.id.btn_click); bu...原创 2019-08-16 23:05:25 · 216 阅读 · 0 评论 -
Android WheelView 详解
以前写过一个基于WheelView的时间选择器(github地址)其实WheelView不仅仅可以用来做时间控件,大家肯定也见过用它做的城市选择控件,身高选择控件等等。先看几个网上找到的图片: 这只是几个控件,图上的每一个可以滑动的Veiw都是一个WheelView,大家完全可以把它当作一个ListView来看。用我们平时写ListView的思维去写它,在配合Po原创 2016-05-18 11:26:48 · 27058 阅读 · 9 评论 -
RxJava 实践
参考文章:1.深入浅出RxJava 2.给 Android 开发者的 RxJava 详解 响应式编程越来越流行了,RxJava这种既能优化代码,又能增加用户体验的的的编码库,在不学习一下就落后啦。今天网上搜罗了一些大牛的博客,边看边敲以便,感受了下Rx编程。在记录一下~~原创 2016-04-15 18:13:25 · 474 阅读 · 0 评论 -
我对MVP的简单理解
以前在我们android开发中会用的MVC架构。真实写项目的时候,我们一般就把activity作为了控制层。activity即承载了view,也负责控制区model中取得数据然后再界面上显示。activity即扮演了view的角色也扮演了controller的角色。 MVP架构其实就是将controller的角色彻底的抽出来,presenter来扮演控制的角色。activity只负责原创 2016-03-26 17:30:53 · 481 阅读 · 0 评论 -
Android Tab页实现总结
Android Tab页实现总结原创 2015-03-18 09:05:11 · 647 阅读 · 0 评论 -
Android WebView 总结
本文摘自 http://www.open-open.com/lib/view/open1364809010937.html本文主要讲解WebView的一些常用使用方法代码如下:xml文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="ht转载 2015-03-18 12:37:53 · 348 阅读 · 0 评论 -
收到推送发送通知到通知栏点击后启动应用
开发日记原创 2015-11-10 19:48:37 · 1419 阅读 · 0 评论 -
基于第三方WheelView 实现的一个时间选择器
由于项目中需要 做了一个时间选择器,使用第三方的WheelView 开始时间和结束时间在一个界面上如果需要 更改背景的话 去WheelView类中将 private int[] SHADOWS_COLORS = new int[] {0xFFFFFFFF, 0x00FFFFFF, 0x00FFFFFF };中的颜色值改变一下就好了 代表上部 中部 下部的原创 2015-12-10 12:55:12 · 1637 阅读 · 0 评论 -
类似大众点评 58 美团 等应用的城市选择器 — Edit
类似大众点评 58 美团 等应用的城市选择器 — Edit项目地址 https://github.com/caoweiaaa/CitySelector原创 2015-12-28 11:29:02 · 1706 阅读 · 0 评论 -
Android混淆
一直以来 ,不知道为什么对于android开发中的的混淆都有一种恐惧感,jar包不能混啊,自定义控件不能混啊等等。工作以来,前面几个项目都没有做过就传到市场。但这可不是长久的办法,混淆有时候也是很重要的。 今天终于把现在的项目混了一下 ,反编译后效果不错。特此记录一下。 我用的是android studio 首先在build.gradle文件中: buildTypes {原创 2015-12-30 17:59:59 · 1488 阅读 · 0 评论 -
Android5.0练习
这时一个练习5.0新特性的小项目,bug还有不少,适合借鉴用,新手写博客 没啥拿的出手的东西,大家互相学习,欢迎吐槽其中RecyclerView的下啦刷新 上拉加载 借鉴了http://www.cnblogs.com/tiantianbyconan/p/4242541.html主页布局文件:android.support.design.widget.CoordinatorL原创 2015-12-16 14:53:56 · 373 阅读 · 0 评论 -
Android中弹出PopupWindow让屏幕变暗
Android开发中 经常碰到让屏幕变暗的场景,特别是弹出一个对话框 或 弹出一个PopupWindow。弹出PopupWindow 的时候有的盆友会用一个半透明的match_parent的viewGroup 来占据剩余的空间来完成 这样如果弹出有动画的时候,就非常难看,体验很不好。 这时候就可以用改变屏幕的亮度来实现变暗的效果。具体代码:原创 2015-12-03 14:48:52 · 3985 阅读 · 0 评论 -
无限层级的组织机构
项目中用到的 按照自己的想法做了一个 大家有好的想法来交流一下项目地址:https://github.com/caoweiaaa/OrganizationLevel效果图:层级部分用是自定义一个LinearLayou 可像里面放入TextView,下面是ExpandableListView LinearLayout中提供一个点击的接口和一个移除点击的位置之后的所有控原创 2016-01-28 11:16:18 · 1307 阅读 · 0 评论 -
使用PopupWindow完成各种dialog
项目地址: https://github.com/caoweiaaa/PopupWindowDialog PopupWindow是个很强大的控件。首先他可以自定义自己的布局,这一点我们就可以根据自己的想法随意的设置自己的布局,然后创建PopupWindow的时候,我们可以设置它的宽高,显示的时候还没能设置它的显示位置,因此它几乎何以完成所有的弹出Dialog的需求。今天就原创 2016-01-15 13:58:34 · 618 阅读 · 1 评论 -
弹出Dialog 并且输入法随着弹出
今天第一次写博客还有点小激动,希望以后我能就坚持住 哈哈 记录工作中的一些小问题~~。好记性不如烂笔头吗 今天项目中做了一个Dialog对话框,里面有一个edittext输入框,我想要一个效果,Dialog弹出的时候,输入框也跟着弹出来。 Dialog dialog = new Dialog(ge原创 2014-12-05 17:48:23 · 1971 阅读 · 0 评论