Ken

Talk is cheap. Show me the code


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • Sitemap

  • 搜索

Mac上的一些高效而又不为人知的小工具

发表于 2016-05-11 | 分类于 工具 |

网上也有很多的介绍如何玩转你的Mac,For example程序员如何优雅地使用 Mac?知乎的这一篇就很不错,当然还有很多,但是今天我还要去写,写我自己一直在用的,而且用的很给力的一些小工具介绍给大家。

用Mac也快一年了,先晒一下我一直在用的一些(多图预警,请注意)

-c
-c
-c
-c
-c

当然还有一些例如QQ,微信,邮箱等啊,这些基本属于必备用品了,这里不多说,上面晒出的5张图是我的5个分类,大家可能也能看出来,这里捡一些好玩而且经常用到的Application来一起看看。

  • Drop to Gif

见名知意,就是将我们平时的一些小视频转成GIF的一个小工具。附上他的一个使用效果
-c

  • CheatSheet

CheatSheet 做的事情很简单,就是在你使用任何软件的时候,长按Command键,即可显示当前软件的所有快捷键。通过这个提示功能,便能快速地找到你想要的快捷键.下面是在Android Studio上面的使用情景
-c

  • Sip
阅读全文 »

小白学Android之adb篇(三)

发表于 2016-04-18 | 分类于 Android |

我们之前一起看了adb和adb logcat的一些简单命令,今天我们在一起来看看adb还有什么好玩的值得我们说的。
如何通过adb命令来安装一个App和卸载一个App,简单的命令就可以简化我们的手动安装与卸载
adb install test.apk || adb unistall test.apk
简单的两行命令实现我们的需要。

试想一下如果我们有这么一个需求,在测试的时候如果之前有一台手机安装过这个App,但是如果版本不一样,继续去安装,就会提示已存在,请卸载在安装,但是又没有命令帮我们,卸载还有安装同步执行哪,当然有了,
adb install -r test.apk
-r就是replace的意思,明白了吧。
上面只是一些很简单,很小儿科的东西,下面我们讲一些高级一点,好玩的东西。
adb pm || adb am || adb wm
这是三个很重要的命令
pm就是PackageManager,am就是ActivityManager,wm就是WindowManager。
下面我们依次来看一看。
pm
试想我们有这么一个需求,就是我们所说的启动页,我们平时开发要做App的启动页大多数用Sp去做,但是这东西只有App第一次安装的时候才会出现,所以我们如果想测试,就必须卸载App然后安装App在进行测试,有没有命令帮我们搞定哪,有的同学会说了上面不是有卸载+安装的命令啊,确实,但是这样显得有点Low,下面我们可以这样做。
adb shell pm clear packageName
清空我们App的缓存,相当于App第一次安装。
可能有的人又说了,我们自己的App可能知道包名,其他的怎么办哪?当然也是有办法的,
adb shell pm list package
查看手机所有的包名。
在这些输出打印当中你可能会发现有手机系统自己的系统包名,有我们安装的第三方应用的包名,那这样可不可以区分哪,当然也是可以的。
adb shell pm list package -3 || adb shell pm list package -s
前者是列出第三方包名,后者是列出系统包名。
我们还可以查看这些App的安装来源,路径。
adb shell pm list package -i || adb shell pm list package -f
还有一个命令打印出来的信息太全面了
adb shell pm dump packageName
源码在此,这个网站可以很好的帮我们在线查看Android源码Pm.java
下面我们来看am
顾名思义,通过它我们可以启动一些和四大组件相关的东西。
for example我们通过它来打开一个网页
adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com
神奇的一幕出现,回车,手机上面自己打开了一个网页。
如果我们还想让它打电话
adb shell am start -a android.intent.action.CALL -d tel:10086
刚刚说了是启动四大组件,那肯定是和他们有关系啊。
启动一个service
adb shell am startservice -n packageName/claaName
解释一下,为什么上面是-a,这个是-n实际上这个地方写-n也行,区别就是-a是action的意思,-n是name的意思,service的路径一定要写全。
adb shell am broadcast -a actionname
adb shell am startactivity -n classname
不解释。
Am源码在此Am.java
最后一个看看Wm
是和手机屏幕打交道的一个命令。
它可以帮我们取出手机的尺寸,密度等信息
adb shell wm size
adb shell wm density
一个尺寸一个密度,完美
源码在此Wm.java
今天的东西比较实用,后面可能还会继续去写这个东西,最近爱上了命令这个东西,因为Mac上面的终端实在是太可爱了,各位晚安,夜深了!!!!

版权声明:



除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

阅读全文 »

小白学Android之adb篇(二)

发表于 2016-04-14 | 分类于 Android |

上一篇我们一起来看过adb的基础用法,这一次我们一起来看看adb logcat的用法

它在as中是长这样的

这是界面化的,今天要说的是他的命令,有几个比较实用而且比较重要的。
第一篇就说过学命令之前把他的help敲出来看看是什么,我们敲了
adb logcat --help
出来下面这些,仅部分,可自敲看看。

有人会提出这样的质疑,as里面的logcat不是很好用吗,而且还很友好,但是不知道你有没有遇到这种情况,就是有某几款手机是没有log的或者在茫茫log中找我们的报错原因,甚至还找不到,或者有的就是一闪而过的log,是不是有种想骂街的冲动,没事,我们不是还有命令啊。
下面我以一个简单的demo来看看今天的logcat,在你的终端当中输入adb logcat会把你所有的log都输出来,这肯定不是我们想要的,我们要对他进行过滤,先看看as中的输出


我对他进行了过滤显示这样,我们在终端只需这样,

adb logcat -s test

后面的test就是我们所说的tag,过滤 输出就这样,如果你继续操作,adb logcat只会累加,我们能不能执行一次,log就是我们所需要的那,可以,就是把之前的清掉就好了,
adb logcat -c
执行清空操作。已经简单了解过后我们下面来看看adb logcat -v这个命令
adb logcat -v --help

下面我们一起来看看其中的几个
adb logcat -v time -s test

打印时间这一列

adb logcat -v process -s test

打印进程这一列

adb logcat -v raw -s tag

只打印我们log的内容,没有tag等其他信息

adb logcat -v long -s tag

几乎会把所有的log信息给我们

阅读全文 »

小白学Android之adb篇(一)

发表于 2016-04-12 | 分类于 Android |

今天我们开始学习adb了!!!

Android开发中从Eclipse到现在的AndroidStudio,ADB起了主导作用,但是我们真正用命令来操控adb的时候并不多,开始windows上面的adb,经常被别人占用端口,现在换了Mac,这些困扰的问题也少了很多。
今天就和大家一起来学习学习adb的使用,开篇比较简单。adb在sdk中的platform-tools下,我们要把他配置到环境变量下,基于Mac。可以看我之前的一篇快速配置adb这里就不说了。

adb version

显示
Android Debug Bridge version 1.0.35 Revision 102d0d1e73de-android
这是我的adb版本,我们能看出来,adb的全称Android Debug Bridge。

我们在使用任何命令之前记得敲他的help肯定没有错,我们输入
adb help
这里只贴出一部分

如果你对英文技术文档很敏感,完全可以自己明白这些命令的意思,无非就是adb后面加上他呗。下面我们捡几个重要的一起来看一下。
我们一起来看一下,如果我们想知道我们的电脑上有几个设备,输入
adb devices

我这里有两个,一个是模拟器,一个是真机,那么我们如果要想针对某一个机器进行操作,我们输入
adb shell
但是给我们的却不是我们想要的,
error: more than one device/emulator
这并没有什么问题,因为你执行这么一句,机器并不知道你是要操作真机还是模拟器,所以我们要把他的序列码加上就好了。指定设备进行操作。
help中有这么一行命令
然后我门这样来搞,
adb -s 4e934820 shell
这里我们对我们的真机进行操作,回车这里已经成功进入到我们的真机,输入ls,查看真机的所有目录

输入exit退出。还有一种方法感觉高大上,还是回顾我们的help命令有这么两行,可以简单帮我们搞定
-d 也就是我们的USBDevice
-e 也就是我们的emulator。
上面输入序列码的操作可以简单成
adb -d shell|| adb -e shell
直接对真机或者模拟器进行操作。
我们已经成功打入到我们的设备内部,那如果我们想从设备中拿我们需要的东西怎么办,或者把我们电脑上的东西放到我们的设备中去怎么办

help中有这么两个命令,是不是很熟悉,和我们在git中使用的场景含义差不多,如果你想把你想把你电脑上的东西放到设备中去,执行push吧,反之执行pull吧。干巴巴的说没意思,我们在终端上玩一把

我们对Desktop进行ls,上面有一个API_KEY.txt文件,我们打算把它推送到我们的真机上面,下面来看看

我们来看看手机里面有吗

发现已经成功的推到我们的设备了,反之我们怎么办,把API_KEY.txt拿到我们的电脑上面,首先我们把电脑上的rm掉
rm API_KEY.txt
然后

此时已经成功放到我们的桌面了。

下一篇会和大家一起来看看adb logcat的用法

版权声明:



除非注明,本博文章均为原创,转载请以链接形式标明本文地址。

阅读全文 »

SublimeText查看Android源码配置

发表于 2016-03-17 | 分类于 工具 |

之前在Windows上面是用Source Insight查看源码,换做Mac开发之后发现SublimeText(下面简称ST)也很棒,之前一直在简单的用,还有一些奇技淫巧没发现,最近想好好的用下他,才把他通通的配置了一番。记录记录,有技巧,有填坑。

首先你要下载ST,还有Android源码。才能接着往下走。

安装Package Control插件

首先打开控制台:view->showConsole
然后输入以下代码,回车

1
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

等一会,重启ST,然后到Preferences里面看一下是否有Package Control,有你就成功了。

安装CTags

打开你刚刚安装的Package Control,接着输入install package,回车,然后输入ctag,出现的话就是你没安装过,没有的话你已经安装过。可以到Preference -> Browse Packages里面查看你安装过的插件。
直接Open你的文件,这时你在打开的文件中,右键菜单中会多一个Navigate to Definition菜单项,在侧左栏的工程/项目文件上右键会看到CTags: Rebuild Tags菜单项,这种种迹象表明你已经安装成功,只是安装成功,能不能使用,再说。

使用Ctags

阅读全文 »

EventBus的一些记录

发表于 2016-03-15 | 分类于 Android |

之前项目中用到过EventBus,之前只是单纯的用,最近在项目中再一次拿出来,就记录一下吧,当复习了。看下面的GIF,大致的表达了EventBus的工作形式。

简介

借Github上面一张图来看一下EventBus是怎么工作的吧,

Eventbus是一个事件优化管理平台,可以将它想像成Android BroadCast&BroadcastReceiver的轻量版,以事件驱动的方式来简化事件处理逻辑,平时开发是以callback或handler来达到类似效果。如果物件之间传递经过太多其他物件;或是一个信息经过太多物件,EventBus将会是一个不错的选择。优点是开销小,代码更优雅。以及将发送者和接收者解耦。

使用场景

我们试想一个简单的场景,在Profile页面,我们想修改我们的个人资料,进入到修改资料页面,修改成功返回到Profile页面,我们要将修改成功的资料显示到当前页面,一种是在Profile页面onResume方法中重新进行一次网络请求,另一种就是用事件传递,我们今天讲的,是第一种用户体验好,还是第二种体验好,可想而知,这只是一个简单的使用场景,我们还可以跨页面进行事件传递等等更深奥的用法。

如何使用

阅读全文 »
123…7
Ken

Ken

Android,BlockChain Developer

38 日志
10 分类
34 标签
RSS
GitHub
Links
  • Go Blockchain
© 2016 — 2018 Ken
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4