202009-14 Win10新添实用功能,你发现了吗? HOT 尽管微软更新总是不断翻车,各种bug不断,但用户量依然很大,而很多人还是对新版系统抱有很大的期望。这不,在最新的 Windows 10 预览版中,微软终于带来了 Windows 10X 系统的三个新的闪亮功能,在近期推出的Build 20206 预览版中已经开始测试,有些人已经体验上了,你发现了吗? 继续阅读 >
201801-29 2018 年初值得关注的 25 个新 Android 库和项目 这是我最新收集的25个Android库和项目列表,你也许会发现它们有用,有趣,并值得查看一下。所有的都在最近3个月发布的,排序不分先后。开始查阅吧!1.transitionerTransitioner是一个为两个拥有嵌入子视图的视图之间提供简便、动态且可调整的动画效果的库。它纯 100%使用Kotlin编写而成,使用MIT许可,且拥有良好的文档。该库支持API19及以上的SDK版本,而且在项目中也包含了用... 继续阅读 >
201708-19 Android非UI线程更新UI的探索 众所周知,在Android中如果在非UI线程更新UI的话,会抛出异常:Onlytheoriginalthreadthatcreatedaviewhierarchycantouchitsviews.因此我们很自然地认为只能在UI线程更新UI了。但是在实际开发中,有时可能有在非UI线程更新UI的需求,如:想通过非UI线程来预加载View。因此本文将探索在非UI线程更新UI的方式。checkThread突破口首先来找下突破口。从上面提到的异常开始切入,抛出该异常的代码如下:android.view.... 继续阅读 >
201707-15 Android开发周报:微信模块化重构实践、滴滴插件化项目开源 新闻7月份安卓各版本份额:牛轧糖终于突破两位数:谷歌近日给出了安卓系统各版本最新的份额数据,去年推出牛轧糖版本(7.0,7.1)终于达到了两位数的市场份额,占11.5%。2015年推出的棉花糖仍然占据统治地位,市场份额达31.8%,之后是棒棒糖,也高达30.1%。《谷歌暗示:Android8.0系统正式版即将到来》:从谷歌发布信息来看,谷歌会于本月底推送Android8.0的最后一个开发者预览版,此版本将接近于最终正式版... 继续阅读 >
201707-13 总结Android模块化的一些知识点。 关于Android模块化我有一些话不知当讲不当讲最近公司一个项目使用了模块化设计,本人参与其中的一个小模块开发,但是整体的设计并不是我架构设计的,开发半年有余,在此记录下来我的想法。模块化场景为什么需要模块化?当一个App用户量增多,业务量增长以后,就会有很多开发工程师参与同一个项目,人员增加了,原先小团队的开发方式已经不合适了。原先的一份代码,现在需要多个人来维护,每个人的代码质量也... 继续阅读 >
201705-19 WebView 缓存原理分析和应用 一、背景现在的App开发,或多或少都会用到Hybrid模式,到了WebView这边,经常会加载一些js文件(例如和WebView用来Native通信的bridge.js),而这些js文件不会经常发生变化,所以我们希望js在WebView里面加载一次之后,如果js没有发生变化,下次就不用再发起网络请求去加载,从而减少流量和资源的占用。那么有什么方式可以达到这个目的呢?先得从WebView的缓存原理入手。二、WebView的缓存类型WebView主要包括两类... 继续阅读 >
201705-15 一个简单实用的Android调试应用技巧 在应用开发中,我们常常会进行日志打印或者debug调试,以此来分析运行时的一些信息,便于发现bug和问题。AndroidStudio的Debug功能很好用,但是有时候有些情况下,就显得不是那么快捷和便利。比如我们调试的点在应用一打开的时候,很靠前,例如Application的onCreate方法中,以至于我们不能足够快的设置进程为debug模式虽然上面的情况可以通过AndroidStudio的debug运行来解决,但是如果项目很大的话,运行... 继续阅读 >
201705-06 Android工作经验之开发技术分享 1.全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。2.数据库表段字段常量和SQL逻辑分离,更清晰,建议使用Lite系列框架LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节。3.全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.4.不要相信庞大的管理类的东西会带来什么好处,可能是一场灾难,而要... 继续阅读 >
201704-07 Android性能优化系列之Bitmap图片优化 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError-内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化。为什么Bitmap会导致OOM?1.每个机型在编译ROM时都设置了一个应用堆内存VM值上限dalvik.vm.heapgrowthlimit,用来限定每个应用可用的最大内存,超出这个最大值将会报OOM。这个阀值,一般根据手机屏幕dpi大小递增,dpi越小的手机,每个... 继续阅读 >
201703-10 Android Studio,使用技巧,问题记录和一些好用的插件 使用技巧根据不同buildType使用不同包名和资源比如在production,development,qa不同阶段使用不同的packageName和authority,在build.gradle中配置如下:productFlavors{production{applicationId="com.myapp.app"resValue"string","authority","com.facebook.app.FacebookContentProvider5435651423234"}development{applicationI... 继续阅读 >
201702-22 作为 Android 开发者必须了解的 Gradle 知识 在Android开发中,很多时候我们不需要修改*.gradle文件太多,我们添加依赖、修改targetcompile、最低支持APIlevel,或者修改签名配置和build类型。其它更复杂一些逻辑,我们最后可能就是从StackOverflow中copy了一些自己也不太懂的代码。本文中我们将一步一步介绍Android工程中用到的gradle文件及其背后的原理。1.Groovy1.1语法Gradle文件其实是用Groovy脚本写的,我们都会写java,所以入门Groovy非常简单。... 继续阅读 >
201702-09 如何随apk一起打包并使用SQLite 背景开发环境macOS:Sierra10.12.1SQLite:3.9.2JDK:1.8.0_77shell:zsh对应源码:shakeba:https://github.com/bihe0832/ShakebaSQLiteSQL语法https://www.tutorialspoint.com/sqlite/sqlite_data_types.htm准备数据库创建数据表创建DB文件在shell中输入下面的命令创建db.➜1sqlite3shakeba.dbSQLiteversion3.9.22... 继续阅读 >
201702-09 Android应用瘦身,从18MB到12.5MB 开篇语前阵子老大交给了我一个任务,主要是帮我们开发的直播应用做Android端的安装包瘦身,花了大概一周的时间把安装包从18MB减小到了12.5MB。原本完全可以优化到10MB之下,但由于其他原因的限制,所以目前阶段只到12.5MB为止。在此记录一下优化的思路和用到的工具,方便自己以后Review,有需要的童鞋也可供参考。瘦身的目的从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的... 继续阅读 >
201701-16 6 个可以让代码变得更整洁的 Android 库 Android开发是有趣的——这毫无疑问。然而,还是有很多平台迫使我们编写重复的样板代码。很多时候这都与需要你处理的UI组件相关。有一些确实是你需要的,当你希望你的应用程序架构能够干干净净的时候。有很多操作在后台异步执行;事实上,最后很容易成为一堆意大利面条似的代码,不可读或者就是让人感觉不正确。今天,我们将看看6个可以帮助保持代码清晰和可读性的Android库,并且使用示例项目以方便你可以看到库的作用。... 继续阅读 >
201701-16 Android性能优化之被忽视的优化点 对于性能优化这个知识点来说,实在是太广了,博主本人也一直非常关注这方面的学习,而对于性能优化来说它包括了非常非常非常多方面,比如:I/O的优化、网络操作的优化、内存的优化、数据结构的优化、代码层次的优化、UI渲染优化、CPU资源使用率的优化、异常处理的优化等等等等。。。本篇文章就博主本人的理解来讲述一些在Android开发中可以优化的地方ArrayList和VectorArrayList和Vector都是内部以数组实现的Li... 继续阅读 >
201701-03 我的 Android 开发实战经验总结 以前一直想写一篇总结Android开发经验的文章,估计当时的我还达不到某种水平,所以思路跟不上,下笔又捉襟见肘。近日,思路较为明朗,于是重新操起键盘开始码字一番。先声明一下哈,本人不是大厂的程序猿。去年毕业前,就一直在当前创业小团队从事自己热爱的打码事业至今。下面总结是建立在我当前的技术水平和认知上写的,如有不同看法欢迎留下评论互相交流。1.理解抽象,封装变化目前Android平台上绝大部分开发都是用着Ja... 继续阅读 >
201701-03 一个简单的网速显示悬浮窗 2016转眼就要过去了,刚刚参加完学院举办的元旦晚会,看了看系里的大牛的各种事迹,内心感慨万分。回来继续安心做我的小码农,顺便更一下将近一个月没有更新的博客。这次带来的是一个悬浮窗网速显示计,先看下效果:demo这里主要是在桌面上显示一个悬浮窗,利用了WindowManager以及Service,接下来看看如何实现这样一个效果:首先APP必须获得在桌面上显示悬浮窗的机会,很多第三方ROM都限制了这一权限,我们... 继续阅读 >
201701-03 一道经典的Android面试题 摘要今天,给各位分享一个很有意思,而且非常经典的Android面试题。试题引入题目:原Activity启动一个新Activity,然后关闭这个新Activity回到原Activty,在这个过程中这两个Activity的生命周期经历了怎样的变化?很多面试者给出了这样的答案:activity_error.png答案真的如此吗?╮( ̄▽ ̄)╭相信一些有经验的老司机们已经开始笑了~其实,这是一个很简单的问题,打印一下Log日志就知道... 继续阅读 >
201612-19 安卓下的刮刮卡摸奖的实现 效果如下:呱呱卡开奖前呱呱卡开奖后实现思路一张呱呱卡有三层,最底层我用一个TextView控件显示中奖内容,中间层是刮完之后的显示图样,最上面一层是刮刮卡的封面。手指刮除封面的过程就是把刮刮卡最上面一层裁剪的过程。涉及的知识点canvas.clipPath(),Path类,Region.Op类onDraw方法和onTouchEvent方法的配合核心代码如下:publicclassLotteryViewextendsView{p... 继续阅读 >
201612-08 史上最全解析Android消息推送解决方案 前言消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传、资讯类产品进行新闻推送等等,如下图:推送消息截图本文将介绍Android中实现消息推送的7种主流解决方案目录目录1.定义在用户未打开App时,App主动向用户推送服务器最新消息。如下图:消息推送的本质是:App将服务器更新的信息推送给用户2.作用产品的角度:功能... 继续阅读 >
201612-08 Android通用标题栏组合控件 由于项目中经常用到此种组合控件,就封装了下,具体效果看下图,老司机可以绕道哈!Image.png一、主要功能支持左右图标动态设置支持左右、中间文字动态修改支持字体大小、颜色修改支持左右图标,左中右文字隐藏显示支持左右图标和文案的点击监听二、基本使用方式<com.example.android.customvView.CustomNavigatorBarandroid:id="@+id/customView"android... 继续阅读 >
201612-08 Android 混淆从入门到精通 简介作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则。说在前面这里我们直接用AndroidStudio来说明如何进... 继续阅读 >
201612-06 在线看Android系统源码,相见恨晚的几种方案 前言:最近在研究MediaCodec,u盘坏了,之前下载的源码也就自然没有了,真是个难过的事情,不能因为没有源码了,就阻挡我的计划了呀,于是就是今天一文,在线看Android源码,加之此前很多人也有向我留言,如何看android系统的源码,今天来敲黑板,划重点了。不管是做Android底层开发,还是做应用层开发,在Android这条路上走下去,必须对于Android源码够了解,如某一个功能,某一个机制,或者某一个API,它到底是如何实现... 继续阅读 >
201612-06 Android APK 更新之路 一、前言提到APK更新,大家可能会想到友盟(umeng)更新,市场上已有数万款应用在使用友盟自动更新的服务。但友盟于2016年10月15日起停止了更新服务。那么我们需要自己处理APK更新的业务。本篇主要讲解以下知识点:使用DownloadManager更新基于RxJava和retrofit扩展的Android线程安全http请求库下载APK更新热更新(AndFix)我们来啾啾第一个知识点。Downlo... 继续阅读 >