自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏成林的专栏

Android技术经验分享

  • 博客(55)
  • 资源 (11)
  • 收藏
  • 关注

原创 java实现zip压缩和解压缩的几种方式

最近在做项目打包相关的工作。需要用 java 把一个有很多文件的目录压缩为zip,或者解压aar,抽取里面的文件。所以需要用到java实现的打包zip的工具类。网上搜了一下,大致都是java自身的ZipFile实现的。实现代码我汇总了,见如下文件:BaseMyProject/ZipByJava.java at master · chenglin198751/BaseMyProject · GitHub但是吧,我测试了下性能,发现,不理想,打包一个一千个文件的项目,在我的台式机 i3 上面,大概需要3

2022-05-17 22:50:32 645

原创 U8打包把dx替换为d8

本文所需文件下载地址:https://download.csdn.net/download/wei1583812/21059961最近一直在搞公司的一套U8打包系统,虽然我的主业不是干这个,但是公司交代的工作,还是得尽心干好的。接入oppo渠道时,打包时遇到了如下报错:Uncaught translation error: com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-s

2021-08-13 17:26:53 1039 3

原创 制作了一款支持android v1v2签名的渠道打包工具

5年前写过这篇多渠道打包的文章:https://blog.csdn.net/wei1583812/article/details/44463697,现在一晃眼5年过去了,v2签名很普遍了,这篇已经不适用了。最近看了腾讯出品的https://github.com/Tencent/VasDolly,感觉很好用。就封装了一下,贡献给大家。项目见:https://github.com/chengl...

2020-01-19 19:09:46 662

原创 HandlerThread:让一个线程不死且拥有不断处理事情的能力

如果有这么一个需求,需要发送socket消息来通信,但是发socket消息不能阻塞UI线程,需要放到别的线程发。此时HandlerThread就派上大用处了。HandlerThread的作用就是让一个线程不死并且具备不断处理事情的能力。当然,你也可以用Loop+Handler+thread自己来实现一个这样的东西。但是既然安卓系统给做好了HandlerThread让咱们来用,何必重复造轮子呢。代...

2019-06-25 14:32:01 1160 1

转载 Android Studio配置使用阿里云的镜像

由于墙的存在,AS开发者在开发时,总是遇到下载库或者升级卡着不动的情况。如果有个代理镜像服务器,可以帮我们从国外下载,然后再映射到国内服务器该多好。感谢阿里,提供了镜像服务器。以下为转载,转载自:https://www.jianshu.com/p/b038bd95444=============================================================...

2019-06-11 10:21:10 17862 2

原创 强烈建议为你的Android项目加上 largeHeap 属性

如上图,Android项目的Application节点里面有个属性叫做 android:largeHeap="true" 。此属性的意思是为你的安卓项目申请更大的内存。我在之前的开发中,总是刻意把此属性设置为false,因为我自以为是的认为,我要为我的应用设置严格的内存,不额外获取更大内存。后来慢慢的看的资料多了,才发现我这种自以为是的想法是错的。才知道安卓之所以设计 android:la...

2018-12-07 14:35:12 1468 5

原创 Java CRC32的实现和应用

 CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。因此,通过检查这一关系,就可以实现对数据正确性的检验。有这么一种应用场景,应用上线后,做ABTest,一半用户能用...

2018-11-29 11:40:38 1810

原创 关于crash " Only fullscreen activities can request orientation "来源及解决方案

最近遇到一个奇怪的bug。就是:当targetSdk>=27 并且android SDK版本是26(Android 8.0.0)或者27(Android 8.1.0)时,此时在应用中,如果把一个Activity的主题设置为透明并且屏幕方向固定时,就会crash,如下:java.lang.IllegalStateException:Only fullscreen activities ca...

2018-09-20 17:39:04 511

原创 java 反射常用记录

public class TestHelper { private String value = "123"; private void test1(String name) { Log.v("tag_2", "反射方法测试 private " + name); }}1、反射一个private 变量值,并再次为其赋值: try ...

2018-06-04 15:44:12 245

原创 Android Studio 光标莫名其妙加粗后,与 insert 键相反的问题

今天在写代码时,突然光标加粗了,而且我怎么按 insert 键都不行。而且当你点击 insert 键时,会发现,光标变为正常模式,但此时是insert 模式,回车死活不生效,输入会删除后面的字符;再按 insert 键,输入恢复正常了,但是光标确是加粗的。怎么调都不行,就是与 insert 是反着的。 最后费了很大的功夫,才找到解决方法: File - Settings - Editor - Ge...

2018-05-10 19:15:15 2122 4

原创 Android 实现压缩图片到任意尺寸

之前写过一篇博客,讲的是如何利用Picasso 来实现压缩图片到任意尺寸:https://blog.csdn.net/wei1583812/article/details/55271209后来我用安卓的原生方法实现了压缩图片到任意尺寸,比picasso 要快很多,且不用导入picasso 。不过picasso 也是用的我说的这种方法,只不过是因为它在处理中中转了几层,导致慢了一些。话不多说,贴代码...

2018-05-10 11:19:13 1836

原创 gradle记录

implementation (com.github.bumptech.glide:okhttp-integration:4.6.1) {//排除掉自身对okhttp 库的依赖  exclude group: com.squareup.okhttp3, module: okhttp}implementation (com.github.bumptech.glide:okhttp-integrati...

2018-03-26 19:53:04 157

原创 Android 监控应用中所有Activity 的生命周期

众所周知,我们可以在Activity 里面监控当前Activity 的生命周期,比如onResume() ,onCreate() 等等。如果想监控所有Activity 的生命周期呢?你可能会说那在BaseActivity 里面去写啊,用集合记录。当然这能做到,可是有没有更简单的办法呢?其实我们可以在Application 的onCreate() 里去注册一个监听:public class

2017-12-21 11:28:27 1338

原创 Android最简单的实现View拖拽跟随手指移动效果

今天想实现这个功能,但是网上搜索代码,都是利用setPadding,setMargin 等方法去实现的,这在Android 4.0 以前是没问题的,但是,Android 4.0 后系统已经提供了更简单的方法给我们用了,就是setTranslationX() 和setTranslationY() 。这两个是View的属性方法。现在我就用这两个方法实现一个View可以跟着手指移动拖拽的效果。代码非常非

2017-08-21 12:36:11 17811 9

转载 分享一款Android开源的仿IOS滚轮效果的控件

前几天发现了一款写的非常不错的安卓Android实现滚轮滑动选择效果的控件,滚动效果非常非常流畅。作者提供了很多属性可以设置,完全可以满足日常使用。我个人用着很顺手,在这里记录一下,以后可以继续使用。项目地址:https://github.com/Carbs0126/NumberPickerView在这里向作者致敬!注:picker.setWrapSelectorWheel(false);//设置...

2017-08-16 15:32:58 3754

原创 Android 实现快速高斯模糊(毛玻璃)效果算法

先上代码:https://github.com/chenglin198751/BaseMyProject/blob/master/app/src/main/java/utils/FastBlurUtil.java如果下面的代码有找不到的方法,那么可以去这么项目里找,完整的项目地址是:https://github.com/chenglin198751/BaseMyProjectJava已经有

2017-08-13 19:13:58 1933

原创 Android 利用RecyclerView 的SnapHelper 实现滚轮效果

在support V4的最新包中,谷歌加入了一个叫做SnapHelper的辅助类。这个类的作用是可以让RecyclerView实现一些类似ViewPager的效果。我大致试了下,可以利用这个类实现滚轮选择效果。如果所示:核心代码如下: mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);

2017-08-10 01:13:21 5907

原创 优化Android 应用启动速度(应用启动慢的真正原因探究)

开门见山告诉答案:一个Android 应用真正启动慢的原因是在Application 里面做了耗时的操作。把这些耗时的操作找出来并且new Thread 放到异步线程里面,那么问题就解决了。下面看我的优化过程,这是我在未优化之前的Application的onCreate() 方法里面做的事情:@Overridepublic void onCreate() { mU

2017-08-02 17:02:01 11845 1

原创 Android实现自定义Toast,并且防止重复显示

我们在用系统的Toast的时候,总是会发现连续多次点击按钮,就会一直不停的弹,完全停不下来的节奏。那能不能无论点击多少次,就只弹一次呢?而且我们还想自己定义Toast样式,系统默认样式太难看了。我就看了下Toast的源码,源码很简单,大概看了十来分钟,就知道了如何自定义。下面贴的是自定义的代码,代码很简单:/** * Created by chenglin on 2017-7-24.

2017-07-27 10:53:41 2144

原创 使用Android Studio 自带的monitors查找App CPU 使用率过高的原因

最近遇到一个问题,就是我们的应用多打开几个页面,直接就卡死了。一般一个应用卡死,无外乎是CPU使用过高,或者内存消耗过大。如果是内存泄露,那么至少几十个上百个Activity泄露才会导致卡死不动。而我们的应用是多打开几个页面就卡死了,那我猜测是CPU 消耗过高引起的。什么情况下会消耗CPU 呢,就是大量的运算。那么此时目标就很明确了。就是去查找是哪个Activity或者哪个方法有一直不停止的运

2017-07-08 19:38:25 14586

原创 Android中自定义LayoutInflater.Factory实现全局替换系统控件(比如TextView,EditText等)

我已写了DEMO放到github , 地址:https://github.com/chenglin198751/InflaterFactoryDemo/tree/master我们有时会遇到这么一个需求,就是要把全局的TextView 、 EditText 替换为自定义的TextView、EditText(比如自定义字体、或者自定义emoji表情时)。如果手动一个个去替换,那不累死了。那有没有一

2017-07-08 17:33:18 1400

原创 Android中打开系统相机连续拍多张图片,并得到图片地址

1、打开系统相机: Intent intent = new Intent(); intent.putExtra("return-data", false); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE_SECURE);

2017-04-27 18:21:29 4505 3

原创 Android中可以用随意替换指定的View(比如在某个位置展示空页面,无网页面之类的)

Android中要在某个地方展示空页面,或者无网页面,开发者一般都是直接覆盖个页面上去,在需要的时候显示,不需要隐藏。这样就扰乱了代码的逻辑性。今天写了个小工具,可以随意指定在某个View上展示空页面。代码很简单,如下,相信很快就能看明白:public class ReplaceViewHelper { private Activity mActivity; protected

2017-03-30 15:20:49 6122

原创 Android 文本框实现类似笔记本那样的带行线的效果

这是一个小伙伴写的(他也是抄的,作者已佚名),我觉得写的挺好,自己又改了改,在此记录一下:public class LinedTextView extends TextView { public LinedTextView(Context context) { super(context); } public LinedTextView(Context

2017-03-23 14:53:03 1116 1

转载 Android EditText 使用InputFilter区分中文英文字符长度

有时产品经理提的需求,要区分中文英文字符长度,一个中文字符代表两个英文字符,输入时要区分长度。比如40个中文,就是80个英文字符。这种需求,EditText 的length属性就不能用了。我查了一下,网上已经有人用EditText filter 实现了。特此记录一下(转载自http://blog.csdn.net/satanzw/article/details/41051975):/** *

2017-03-21 11:30:36 2675 1

原创 Android获取当前APP的data路径,以及获取存储卡上的data路径,obb路径

现在的Android应用将文件放到SD卡上时总是随便创建一个目录,那这样有个问题就是卸载应用时,这些垃圾还留在用户的SD卡上导致占用存储空间(猎豹清理大师这样的工具由此应用而生)。其实Android系统已经帮我们提供了相关的API可以将文件缓存到data/data目录下,当APP卸载时,这些垃圾文件也跟着自动卸载清除了。只是很多开发者不知道而已。我在这里记录一下,以后谁搜到了就可以使用了,当然,记

2017-03-09 10:32:51 17071

原创 Picasso的用法记录

1、把图片下载到本地并且缓存起来,使用场景是预加载某张图片时: Picasso.with(this).load(Url).fetch(new Callback() { @Override public void onSuccess() { } @Override

2017-03-07 11:13:31 562

转载 Android实现竖直显示的TextView【转载】

转载自:http://hz-chenwenbiao-91.iteye.com/blog/2089851  感觉写的很好,特此转载记录下。但是我发现这个哥们也是转的,原文出处已经找不到在哪儿了。public class VerticalTextView extends View { public static final int LAYOUT_CHANGED = 1; pr

2017-02-23 19:03:41 3869

原创 Android中利用Picasso实现图片压缩指定任意尺寸

之前做项目时,有个需求是指定照片压缩到任意尺寸上传给服务器。当时我自己写了个图片压缩方法,但是不够完美,小问题不断。后来看到了神器Picasso不光能加载网络图片,还能以任意尺寸加载本地图片。于是我想,既然Picasso能任意尺寸加载本地图片,那它肯定能任意尺寸压缩图片了。仔细找了下,找到了对应的方法,我刚才测试了一下,发现确实可以满足我的需求,而且图片质量还很不错。在这里特此记录一下。Pic

2017-02-16 19:52:31 6214

原创 Android模仿圆形圆圈倒计时实现

现在看到很多软件的开屏图都是画一个圆圈,从0度画到360度,然后倒计时三秒。感觉挺好玩,刚才忍不住写了一个,贴一下代码:

2017-01-25 13:41:17 5034

原创 模仿微信小程序在Android手机的最近程序打开列表

微信今天上线了小程序,我也体验了一把,发现微信小程序在Android手机的最近打开程序列表里面,是一个单独的任务,就像和微信没有关系一样。如图所示:本着一名程序员的好奇心,看到好玩的东西都想找到怎么实现的,我就花了点时间找到了实现方案。实现方案有两种,先看第一种:public class MainActivity extends BaseActivity { @Ove

2017-01-09 17:05:11 2663 2

原创 微信和QQ按back键不松开就最小化之原因探秘

大家有没有发现,Android版微信和QQ,按back键的时候,只要按上(还没松手),程序就最小化了。而别的APP都是要松开back键时才最小化。如果是普通人使用起来肯定没感觉,但是作为一名安卓程序员,我不能忍啊,我想知道为什么微信QQ和别的APP不一样啊。我疑惑了很久,今天有时间,决定揭开这个秘密。我刚开始猜测,是微信注入了某些代码到系统里,可以监听back键的down和up事件,但是一想,...

2017-01-09 15:21:05 792

原创 ViewPager模仿弧形切换动画(备忘)

最近有空,写了个ViewPager切换的动画,模拟的是弧形切换,就是左右滑动时的弧形动画。这里简单记录一下,以后用到就不用再写了。 public static class ZoomArcPageTransformer implements ViewPager.PageTransformer { private static final float ANGLE_MAX

2017-01-04 18:07:35 993

原创 Android 中最简单的实现 HTML(H5)调用native原生页面的方法

先简单描述一下Android 中最简单的实现 HTML调用native原生页面的流程:1、先让Activity注册实现schema2、Activity实现可以接收schema传过来的参数的方法3、浏览器在shouldOverrideUrlLoading()方法中实现拦截URL判断

2016-12-08 17:51:14 10407 1

原创 Android多进程时Application初始化问题,大坑

之前在做项目时,遇到一个大坑,就是我的APP 的Application 的onCreate方法,竟然执行了好几次,这就导致我在onCreate里面做了一些初始化的操作被重复执行了,导致奇怪的bug产生。后来冷静下来分析一下,才发现有一些第三方组件,比如百度推送之类的,它们是单独开了一个进程,那么每个进程会自己初始化自己的Application,那自然onCreate方法会多次执行。准确的说就是你的...

2016-11-29 17:11:03 13676 2

原创 Android中Application单例模式的正确写法

在Android开发中,经常要在别的类去拿Application的单例,我看过很多单例模式的写法如下:public class MyApplication extends Application { private static MyApplication myApplication = null; @Override public void onCreate() {

2016-11-29 15:30:59 13300 7

原创 Android实现夜间模式

最近研究了下安卓夜间模式的实现,发现没那么复杂,先打个草稿,待会写一下

2016-11-29 14:46:02 800

原创 Android实现不可左右滑动的ViewPager

很简单,就几行代码:public class NoScrollViewPager extends ViewPager { private boolean isScroll = false; public NoScrollViewPager(Context context) { super(context); } public NoScroll

2016-11-29 14:24:19 330

原创 Android 以任意比例裁剪图片

公司的一个小伙伴写的,可以按照任意比例裁剪图片。我觉得挺好用的。简单在这里记录一下,以后肯定还会用到。public class SeniorCropImageView extends ImageView implements ScaleGestureDetector.OnScaleGestureListener, View.OnLayoutChangeListener {

2016-11-11 18:44:34 5773 2

原创 Android 中任意View实现圆角

在咱们实际的项目开发中,经常会遇到需要把整个View裁剪成圆角的那种。如果用shape来做,那么圆角依旧裁剪不掉。谷歌出品过一个叫CardView的控件,可以很方便的设置圆角。但是这个在Android 5.0以下不兼容。最近项目要用到这个,所以我就想起了很早之前我在谷歌的源码里找到过一个比较简单的实现方案,这里贴一下,以后谁搜到我这篇博客可以直接使用了。代码贴一下,就一个类,很简单。

2016-11-11 17:34:26 7225

U8 SDK dx转d8所需资源

U8 SDK dx转d8所需资源

2021-08-13

build_channels_apk.zip

安卓支持v1v2签名的工具,基于腾讯的https://github.com/Tencent/VasDolly 封装而来。

2020-01-19

jadx-0.6.1-dev-build226.zip

使用方法: 把APK文件直接拖拽入 ...\jadx-0.6.1-dev-build226\bin\jadx-gui.bat 等待片刻即可。

2019-05-22

android开发中文API,中文类库

这是android的中文API,部分内容整理来自网络,很不错的,值得一看。

2014-02-28

oracle 精简客户端

连接oracle数据库的超级精简客户端,这个客户端只是用来连接oracle数据库,别的什么功能都没有,注意,只是用来实现连接数据库的。超级精简。

2011-06-10

PB(powerbuilder)重要(常用)函数详解

这是著名的PB专家郭宝利先生写的一本书。 包括了几乎所有PB的重要函数的详细用法。 实在是PB初学者不可多得的一本好书。

2010-04-20

java学习笔记(基础知识,Java入门)

这是我曾经用过的一些Java知识,而且随着我的学习我又补充了一些。都是入门级的只是。希望对大家有帮助。

2010-01-19

PB(powerbuilder)初学教程--笔记

这是我初学PowerBuilder时,自己做的学习笔记。对初学者很有帮助,因为这是我的学习心得,而且记述的非常详细。对PB最常用的那些函数都记述的有用法。 贡献出来,给PB的初学者。

2009-12-24

PB中能使PB程序独立运行的三个库文件

可以使PB独立运行的三个库文件。 发布PB程序的时候,只要加入这三个库文件,那么就可以让PB独立运行了。

2009-11-07

word 转 chm

软件介绍: 本软件可以快速将word文档,按大纲结构生成chm文件,及html站点。 1、自动处理大纲结构,按大纲结构生成页面及目录索引。 2、可设置是否显示页眉、页脚。 3、自动处理锚点为链接。 4、可以选择大纲层次级数处理文档。 5、可设置生成封面。 6、可自动删除word目录索引。 7、可自定义页面底部版权信息。 8、可生成chm文件,及html站点。

2009-10-20

PB做的QQ(完全模仿)

这是用纯PB做的QQ程序,界面是完全模仿的。 服务器24小时开放。需要源代码的呼我。

2009-10-09

空空如也

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

TA关注的人

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