序言 记录Android的一些判断网络,蓝牙,GPS,等设备状态的方法。 1.判断网络是否可用 // 是否有可用网络 private boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo network = cm.getActiveNetworkInfo(); if (network != null) { return network.isAvailable(); } return false; } 2.判断wifi是否可用 // Wifi是否可用 private boolean isWifiEnable() { WifiManager wifiManager = (WifiManager) mContext .getSystemService(Context.WIFI_SERVICE); return wifiManager.isWifiEnab..... Android常用的蓝牙,GPS,网络等状态检测方法汇总 Android
序言 之前买了台Android测试机,发现原生的Launcher不太对我胃口,毕竟Android的精髓在于折腾。打算学习一下Launcher开发,顺便有了这篇文章。实际上我们的Android桌面Launcher其实也只是一个稍微特殊一点的App。并没有什么太高深的内容,我们都可以通过简单的代码实现你心中最完美的Android Launcher。 惯例先上效果图 画质较差,将就看下 1准备工作 实际上判断一个App是否是Launcher很简单,我们只需要在manifest里面增加两句category <activity android:name=".MainActivity" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category an..... 教你撸一个属于你独一无二的 Android Launcher Android
1.序言 Android 原生手机熄屏的时候可以看到屏幕饱和度会减低变灰,然后有一个缩放的动画再关闭屏幕。我一直很好奇这个饱和度变低的效果到底是如何实现的。今天决定来尝试用自己的方法实现一下类似的效果。 先上效果图 gif20190516170046.gif 2.思路 第一反应也是最容易想到的方法就是使用ValueAnimator在UpdateListener 里面遍历所有window.decorView下的子View,依次改变其饱和度。但是不用想都能知道这个方法有很大的问题。如果界面的控件有很多的话,那光跑这个效果就足以榨干手机的性能了。编写Android 里面的动画效果其实有两个很重要的点。1.用尽量少的性能实现相同的效果 2.不要用物理的思维去实现(比如有些悬浮粘附效果其实只是两个View交替显示的障眼法)既然依次遍历不可行,那我是否可以只改变一个View来实现这个效果呢? 3.实现 首先随便写一个带按钮的布局 关键是必须在最外层有一个match_parent大小的ImageView可以覆盖住整个布局 设置按钮的点击事件 btn.setOnClickListener { va...... 使用 ColorMatrix 实现界面整体饱和度渐变 Android
1.序言 最近找到了一个非常简单的DB管理工具 名为Sugar ORM 号称不需要编写SQL语句就能实现数据库操作。实际使用了一番发现在数据库表结构不复杂的情况下还是蛮好用的。另外Sugar ORM不提供数据库加密,因此需要配合SQLCipher实现加密。(这两个工具似乎在其他平台也能使用,下面以Android为例) 2.牛刀小试 Sugar ORM 1.导入Module 因为后面需要加入SQLCipher,所以直接下载源码import Module方便修改源码。具体import方法略过。 2.创建数据库基本信息 你的数据库信息需要提前在Manifest里输入,SugarDB才能正确初始化 <application> <meta-data android:name="DATABASE" android:value="sugar_example.db" /> <meta-data android:name="VERSION" android:value="2" /> <meta-data android:name="QUERY_LOG" andr.... SugarORM SQLCipher 数据库及加密教程 Android
序言 这次开发的App跟BLE Beacon相关,原生负责搜索附近的Beacon数据并上报到服务器,Flutter端作为信息展示。本来两边是泾渭分明的,但是原生这边需要获取到Flutter端请求的Token作为服务器身份验证。于是有了这篇最简单的数据交互方法。 1.SharedPreferences 本来打算按部就班的按照 Flutter与原生(Android)的交互 实现交互方法的。跟前端小伙伴简单沟通了下,发现Flutter端是使用名为SharedPreferences的插件保存Token的。作为Android 开发者,对这个名字应该相当熟悉了。如果它的机制跟Android 原生的SharedPreferences一样保存为本地Xml,那我岂不是连交互方法都不用写就能获取到他的Token了。 2.分析源码 这里是SharedPreferences的源码地址 从目录可以看到其实这个Flutter插件本质也只是一个Flutter项目,android 与 ios 文件夹分别对应不同的实现。我们进到android目录下看看到底是怎么实现的。 这个插件的实现还是比较简单的,SharedP...... Flutter 与原生最简单的数据交互的方法 Coder
序言 我所在的公司是一家外包公司,项目很多可是只有我一位Android开发,为了能更有效率的接项目,经理决定让有Vue基础的几位前端开发配合我开发,于是就有了一篇踩坑的文章。 1.Weex是个啥? Weex是阿里巴巴出品的一套类似React Native的混合开发技术,目标是一套代码,多端运行。(Web,IOS,Android)阿里自家的淘宝客户端上也有使用。能通过加载服务器js文件随时切换UI。 2.咋样用? 1.配置环境 在Android端的配置并不复杂,按教程设置gradle依赖,权限,然后在你的Application初始化 fun initWeexSdk() { val config = InitConfig.Builder().build() WXSDKEngine.initialize(this, config) } 跟教程比少了两个Adapter,但是没关系,后面会讲到怎么用。 接下来就要封装一个简单的BaseWXActivity,继承IWXRenderListener abstract class BaseWXActivity : BaseActivity(), I...... Weex-Android 教程 - 从入门到放弃 Android
作为一热爱搞机的孩子,即使这回答没人看得到我也要答。 第一次对手机感兴趣是在初中,那时候同学用的大多数是诺基亚,5230盛行。 然而我家父母并不支持上学期间有手机,为了拥有一部自己的手机,我用几百块偷偷去二手市场转了圈。 相中了那么一部手机 (网图,侵删) HTC的touch pro2 为什么看上它呢,原因很简单 因为它是微软系统的,我幻想能在这部手机上玩电脑游戏。挂个梦幻什么的……(我家有个大哥,家里的电脑我基本碰不到) 然而拿到回家的时候我发现虽然是微软的,但是TMD运行不了电脑的程序啊!!!!我瞬间就懵逼了(太天真了) 相信很多童鞋都没见过这个系统,这是微软的Windows Mobile系统,简单来说是WP的前身,不过跟WP天差地别,功能跟PC非常相似,但软件十分的稀少没什么人用。(经 @JOwOS 评论提醒,图中的系统是WM6.0) 一年过去,安卓悄然升起,手机店,宣传海报无一例外的都是水果忍者,愤怒的小鸟,我,我也想有部安卓手机啊!我也想切水果啊!但我学生党没钱啊!平时在家玩手机都是偷偷躲房间不敢让父母看到的你敢信吗! 机缘巧合,我上贴吧的时候看到了刷机这两个字,知道原来...... iPhone 到底爽在哪里? 杂谈
序言 开始Codeing的第一步就是熟悉你的Ide,熟练使用你的开发工具能极大的提高你的开发效率和撸代码的体验,下面总结几个必须要会的关于Android Studio 的小技巧或快捷键。 1.layout preview 很多Android初学者编码的时候写UI往往是写了一段就开始run到实机看效果,有时候为了改个padding或者textcolor就需要重新编译,耗费非常多的不必要的时间。其实Android Studio已经为你考虑到了。编写UI的时候只需要点击右上导航栏Gradle上方的Preview就可以看到UI效果了,你可以一边撸码,一边看到显示效果。 2.代码跟踪/打开实现 代码跟踪是个特别实用的东西,你只需要在类或参数的位置按住Ctrl + 鼠标左键就能看到类或参数的使用位置,这个东西初学者都知道。还有一个类似的东西是打开实现。用于快速的看到interface类被实现的地方,在MVP框架中,这个小技巧能很快的帮助你找到interface的实现,操作方法就是Ctrl + alt + 鼠标左键。 3.返回上/下个光标位置 在编写代码的时候经常会跳转到不同的类,如果你想回到刚刚..... 关于 Android Studio 必须要会的技巧 Android
"游戏是假的,体验是真的" 高山流水是假的,心生豪迈是真的 千军万马是假的,热血沸腾是真的 打情骂俏是假的,暗生情愫是真的 魑魅魍魉是假的,惊心动魄是真的 义气江湖是假的,侠客心肠是真的 我想问,什么叫做浪费时间。看一本书浪费时间么,看部电影浪费时间么,弹弹吉他唱着歌浪费时间么 我可以说,工作浪费时间,学习浪费时间,赚钱浪费时间,活着也是浪费时间,因为人都会死,死了就什么都没有了 是这样么。不对吧 私以为,活一生只为了个体验。像通关一个游戏,通关后这个游戏的装备技能对你没有丝毫影响。但玩这个游戏的时间并没有浪费,我们获得了惊心动魄的体验。人会死,但生活还是有原因的,体验就是生活的全部。 买车房,并不是为了车和房,而是为了安稳的感觉,体验舒服的生活,给自己带来归属感,安全感,我们根本不在乎车和房,我们只是要这种感觉 你做的那些不浪费时间的事情,也只是为了体验,玩游戏也是为了体验,有什么高低之分呢, 毕竟 硬要给人生赋个意义的话 也就只有体验这个理由了 存档下我在知乎上的答案 https://www.zhihu.com/people/du-li-te-xing-de-qin-zi/ans..... 玩游戏很浪费时间,但为什么仍有很多人沉迷其中? 杂谈
MyBlog www.moyck.com 序言 上篇文章 Docker的简单安装与使用讲到了battery-historianh的安装和配置,这次记录的就是battery-historianh的使用和Android耗电优化的一些想法。 1.简介 公司的一个项目就是通过蓝牙不断搜索附近的设备,当搜到设备或者设备消失时会将设备ID和当前定位坐标发送到服务器。然而客户反映该APP耗电过于严重。因此我的任务就是找到耗电严重的原因并且 fix it!通过搜索发现了一个好用的电量消耗分析的工具。battery-historian这个工具是Google的出品,能通过图表直观的看到设备各个模块或者进程消耗的电量。开始解决问题之前必须找到问题的核心和思路,毕竟知自知彼百战不殆。 2.battery-historian的安装配置 参考上篇文章Docker的简单安装与使用。如果发现配置失败也没关系,这里有个别人搭好的环境可以直接用 https://bathist.ef.lc/。在我配置了一天Docker之后才发现这个网址,令人窒息。所以说能用谷歌就别用百度。 3.准备工作 在终端输入如下代码开启Androi.... Andorid 耗电优化与 battery-historian 的基本使用 Android