简介:为android开发的log管理工具,更方便使用,加快调试速度。 支持直接打印数据集合,如List、Set、Map、数组等 全局配置log输出 不需要设置tag 准确显示调用方法、行,快速定位所在文件位置 简单用法 // 输出字符串 LogUtils.d("12345"); // 输出参数 LogUtils.d("12%s3%d45", "a", 0); // 输出异常 LogUtils.d(new NullPointerException("12345")); // 输出对象 Person person = new Person(); person.setAge(11); person.setName("pengwei"); person.setScore(37.5f); LogUtils.d(
pengwei
0
2015-09-18号日记
[hermit auto=”0″ loop=”0″ unexpand=”0″ fullheight=”0″]netease_songs#:5285416[/hermit] 今天博客换了一个新主题,换成了我喜欢的左右结构的框架,看不爽之前的主题已经很久了,经过2个星期的改造新主题simpleFly初级版终于完工了,并在github上开源,也算喜事一件(^__^)。 不知不觉又快到了一年中秋,在BPIT也呆了半年了。去年的中秋在传习度过的,晚上一群小伙伴在操场上玩游戏,如今工作都快一年了,骨子里还当自己是学生,有时任性,有时放纵,做事还不够成熟稳重。其实我不是很喜欢现在的工作,一个人完全承担一个app的开发,没有交流,没有讨论,对新技术的学习严重滞后。 继续奋斗吧,为了美好的明天!
wordpress主题simpleFly
simpleFly是基于wordpress官方twentyfifteen主题修改而来,作者是舞影凌风,在apache2.0协议下开源。 下载地址:https://github.com/pengwei1024/simpleFly 更新日志 1.0.1 基础功能的实现,友情链接和社交分享小工具的实现。 1.0.2 新增主题设置(设置头像,统计代码,页脚文字) 使用教程 设置菜单 设置小工具 主题设置
android gradle flavorDimension的使用
先从字面来解读flavorDimension,flavor翻译为口味、特点,在gradle中用来实现不同的渠道包(可能packageName不一样,可能版本号,and so on),Dimension翻译为维度,flavorDimension就翻译成渠道的维度吧。先看一段代码: android { ... flavorDimensions "releaseType", "market" productFlavors { free { flavorDimension "releaseType" } pro { flavorDimension "releaseType" } china { flavorDimension "market" } global { flavorDimension "market" } } } 因为网上对于flavorDimension的资料是在太少,所以只能根据代码运行情况来分析作用了。 执行gradlew assembleRelease命令(linux/Mac下为./gradlew assembleRelease) 在build/outputs/apk下共生成了4个apk文件(都是unsigned的原因是我没有设置签名),分别为: app-free-china-release-unsigned.apk app-free-global-release-unsigned.apk app-pro-china-release-unsigned.apk app-pro-global-release-unsigned.apk
wordpress开发自定义小工具
本片文章介绍怎么利用开发一款wordpress小工具,以开发友情链接小工具为事例。 方法一:通过registersidebarwidget()方法实现 新建friendlink_widget.php文件,内容如下: 舞影凌风 舞影凌风 舞影凌风 舞影凌风 在functions.php里加入以下代码,我的friendlink_widget.php文件在主题根目录widgets文件夹下 // 导入友情链接小工具 require gettemplatedirectory() . '/widgets/friendlink_widget.php'; 注意:这种方式实现的小工具不能设置选项,而且只能存在于一个widgets栏中。什么意思呢,就是如果你的主题可以首页,文章页,自定义页面显示不同的sidebar,那个这个小工具只能存在于一个里面,不能重复添加。 方法二:通过继承 WPWidget类+registerwidget()方法实现 参考官方: wp-includes/default-widgets.php文件写法 新建friendlink_widget.php文件,内容如下 target = '_
在mac下配置php的开发环境
1.启动apache 打开”系统偏好设置“->”共享“,在”互联网共享“那一项前面打√ (选择端口共享给电脑,蓝牙PAN或者Thunderbolt网桥都行) 此时在浏览器中输入http://localhost,会出现It works!的页面 apache已经配置完成。 2.启动php 找到Apache的配置文件,在目录/etc/apache2/下,打开Finder,选择”前往”-“前往文件夹”,输入”/etc/apache2/“,找到其中的”httpd.conf”文件,选择用文稿打开进行编辑,点按Command+F,搜索 LoadModule php5_module libexec/apache2/libphp5.so 去掉前面的#号并保存 重启apache
webview与javascript交互回调与异步
传送门: webview与javascript基本交互方法请看这里:android-webview与javascript交互 webview与javascript异步回调实现方案:android-webview与javascript交互 * * 1.在javascript中回调java代码内容 在java方法重直接返回值就行 @JavascriptInterface public String getUserName() { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } return "pengwei08"; } 在javascript中可以直接使用 hello world var username = window.jsBridge.getUserName(); var h2 = document.getElementById("h2"); h2.innerHTML = username; 注意 在javascript这样写是同步的,直到window.jsBridge.getUserName()返回值js才会直接执行下去,在java代码重getUserName中线程休眠了5s,在javascript中window.jsBridge.getUserName()也需要等待5s才会继续往下执行。
设置sublime在同一个页面打开
在使用sublime中,发现每次打开一个文件sublime都会打开一个新窗口,更喜欢NotePad++多标签的方式, 在网上找到了解决办法如下: 打开:Preferences -> Settings – Default 搜索openfilesinnewwindow将true改为false,保存并重启sublime搞定。
ViewPager滑动最右继续滑动跳转
看代码吧,废话不多说了,关键方法是onPageScrollStateChanged() public class GuideActivity extends BaseActivity implements ViewPager.OnPageChangeListener { private ViewPager viewPager; private CircleIndicator circleIndicator; private GuideAdapter adapter; private boolean misScrolled; private int position = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURENOTITLE); setContentView(R.layout.activityguide); viewPager = findView(R.id.container); viewPager.addOnPageChangeListener(
[转]深入讲解Activity launchMode
Android系统中的Activity可以说一件很赞的设计,它在内存管理上良好的设计,使得多任务管理在Android系统中运行游刃有余。但是Activity绝非启动展示在屏幕而已,其启动方式也大有学问,本文讲具体介绍Activity的启动模式的诸多细节,纠正一些开发中可能错误的观点,帮助大家深入理解Activity。 行文之前 在正式行文之前,先介绍一些文章提到的概念 文章后续会提到Task,这里的Task指的是与用户交互的Activity实例的集合。 Task中的Activity实例以栈的形式存放,这个栈就是Activity的回退栈。 本文图片较多,在看图时,请注意观察Activity顶部的title,来区分具体Activity。 为何有启动模式 应用中的每一个Activity都是进行不同的事物处理。以邮件客户端为例,InboxActivity目的就是为了展示收件箱,这个Activity不建议创建成多个实例。而ComposeMailActivity则是用来撰写邮件,可以实例化多个此Activity对象。合理地设计Activity对象是否使用已有的实例还是多次创建,会使得交互设计更加良好,也能避免很多问题。至于想要达到前面的目标,就需要使用今天的Activity启动模式。 如何使用 使用很简单,只需要在manifest中对应的Activity元素加入android:launchMode属性即可。如下述代码 接下来就是介绍launchMode的四个值的时刻了。 standard 这是launchMode的默认值,Activity不包含android:launchMode或者显示设置为standard的Activity就会使用这种模式。 一旦设置成这个值,每当有一次Intent请求,就会创建一个新的Activity实例。举个例子,如果有10个撰写邮件的Intent,那么就会创建10个ComposeMailActivity的实例来处理这些Intent。结果很明显,这种模式会创建某个Activity的多个实例。 Android