- 博客(82)
- 资源 (7)
- 收藏
- 关注
原创 Kotlin-Flow学习笔记
Channel 和 Flow 都是数据流,Channel 是“热”的,Flow 则是“冷”的。这里的冷,代表着 Flow 不仅是“冷淡”的,而且还是“懒惰”的。Flow 从 API 的角度分类,主要分为:构造器、中间操作符、终止操作符。今天这节课,我们将会从这几个角度来分析 Flow 的源码,来看看它的这几类 API 是如何实现的。Flow 的功能看起来非常高大上,然而它的原理却非常的简单// 代码段1fun main() { val scope = CoroutineSco
2024-09-17 16:16:53
474
1
原创 如果简单优雅地为ListView的最后一行添加分割线
一般我们布局中ListView如下:<ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@color/list_divider...
2018-03-06 22:35:30
1512
原创 java不常见知识汇总
1.enum类的 values()方法 Enum类没有此方法,此方法是编译自动生成的public class JavaTestUtil2 { public static void main(String[] haa){ EnumTest[] enumTestArr = EnumTest.values(); for (int i = 0; i < en
2017-10-09 16:41:55
460
原创 有用的API集锦
1.读取Assets目录下的资源文件:/** * 读取asserts目录下的文件 * @author barry.huang * @return 对应文件的内容 */ public static String readFileFromAssets(Context context, String fileName) { String
2017-02-22 12:15:25
806
原创 实用小功能收集
1.模拟View的点击事件:/** * 模拟View click 事件 **/ public static void doSimulateClick(View view) { doSimulateClick(view, view.getWidth() / 2, view.getHeight() / 2); } public stat
2017-01-17 15:04:56
484
原创 Android 切换系统语言后,重启App
问题描述:App->改变系统语言->重进App后,最近的Activity会走onCreate()方法,然后App被杀掉;直到第二次进入App后,App会重启解决方案:App->改变系统语言->重进App后,最近的Activity走到onCreate()方法时,检测系统语言是否改变,如果是,就重启App。LanguageUtil.classpackage com.barry.comm
2016-09-21 19:44:58
8648
原创 android 代码混淆与反编译
反编译:apktool (如不需要资源文件,可不用) 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件下载上述工具中
2016-09-03 16:48:10
435
原创 Android wifi无线调试App新玩法ADB WIF,very cool!!
http://www.jianshu.com/p/21d1b65d92a4
2016-07-21 16:46:35
1004
原创 android ImageView亮度变化
1.较好的办法(特别适用于亮度渐变效果)://改变图片的亮度方法 0--原样 >0---调亮 <0---调暗private void changeLight(ImageView imageView, int brightness) { ColorMatrix cMatrix = new ColorMatrix(); cMatrix.set(new float[] { 1, 0, 0,
2016-04-19 17:12:19
3954
原创 TextView的展开收缩功能的实现;(及判断TextView是否超出)
1.实现代码如下://textview的最大行数根据需要改动tv.setSelected(false);tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //当内容只有一行时,如果不做此拦截,会发生内容抖动现象 if(!isOverFlowed(tv))
2016-03-22 18:37:18
3866
转载 理想的程序员
我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。26岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭、害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有500万用户产品的后台主程。从前我对计算机技术心怀畏惧,认定技术高人一定有佛光笼罩,昼夜不息运键如飞日吐代码上万行。现在也算见过一些世面了,回首那段忐忑不安宛如初夜的过程,我
2015-11-29 19:39:59
514
原创 android JNI生成.so文件(arm64-v8a等)配置
开发中出现找不到.so不对的Bug,原因是测试机是64位的,而arm64-v8a中的.so是32位的。配置生成arm64-v8a的.so文件:在jni/Application.mk中写入:APP_ABI := armeabi armeabi-v7a arm64-v8a,重新编译就可以了,如果没有这个文件就在jni目录下新建一个。转一个自定义Ndk编译器的文章:转自:http:/
2015-11-27 19:56:09
19600
原创 ContentProvider和SharedPreference比较
ContentProvider可用于进程间共享读写数据,SharedPreference则不可以;SharedPreference写的速度要比ContentProvide快得多,比如前者如果是30毫秒,后者往往要80毫秒以上,甚至时不时达到200毫秒,当然这只是粗略测试。...
2015-11-26 15:56:14
1871
原创 Android性能与功耗监测工具
1.PowerTutorhttp://www.amsoft.cn/post-160.html2.Trepn Profiler v6.0:Android最棒的性能与功耗监测工具http://www.youkuaiyun.com/article/a/2015-04-16/15823833
2015-11-23 18:31:00
1386
原创 Android唯一识别号(设备指纹)的生成
原理:1.将imei号+手机硬件信息+androidID拼接成一个字符串(由于个别手机某些时候获取的wifi MAC和蓝牙MAC,故舍去这两项);2.再用MD5把以上信息处理成32位的字符串;代码实现如下:package com.barry.utils;import java.security.MessageDigest;import java.security.NoSu
2015-11-04 16:21:23
9011
转载 国内四个不错的 Android 团体博客
2015-11-03 TrineacodeKK 推荐国内几个不错的团体技术博客。1. 阿里技术沙龙http://club.alibabatech.org/阿里技术嘉年华每次会议分享的内容,这个沙龙以前叫淘宝技术嘉年华,从 2011 年开始举办,四年多了,不容易。Android 端的分享包括:支付宝钱包客户端技术架构、手机淘宝客户端架构探索实践、支付宝钱包流量电量
2015-11-03 10:33:13
718
原创 eclipse设置黑色主题
虽然以前也使用eclipse的黑色主题,但是配置起来稍微麻烦一点。这里先声明,下面的方式适合最新版本的Eclipse Luna,旧的版本可以下载我提供的这个插件,并将其放在eclipse目录下的plugins目录下即可。插件下载地址:http://download.youkuaiyun.com/detail/csulennon/8372387Eclipse LUNA 版本无需安装这个插件,因为
2015-10-29 19:33:14
1326
原创 adb.exe 已停止工作 解决
http://pan.baidu.com/s/1eQfLGYY用此链接下载的高人写的adb.exe替换掉SDK \sdk\platform-tools的adb.exe,即可。引用自:http://bupt-roy.iteye.com/blog/1255109
2015-08-25 17:30:44
47723
原创 github代码提交(简单直接命令行方式)
前置条件,github上面已有库项目Repository (MyFirstGitProject)第一种情况:你的项目还没跟github目标库MyFirstGitProject建立连接:1.cd C:\Users\Administrator\Desktop\MyProject //进入到你要提交的项目文件夹2. git init //这是初始化在这个文件夹中建立一个空库
2015-06-22 22:58:24
5762
原创 Eclipse 下 Memory Analyzer 的安装
help -> install new software ->work with(输入网址:http://download.eclipse.org/releases/juno 或者 Juno - http://download.eclipse.org/releases/juno )- > General Purpose Tools -> 选择Memory Analyzer安装
2015-04-16 16:12:56
803
转载 Android Service的生命周期
Android Service的生命周期 Managing the Lifecycle of a Service service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径:A started service 被开启的service通过其他组件调用 startService()被创建。 这种service可以无限地运行下去,必须调用
2015-04-08 16:22:45
503
原创 开发中所遇到的一些问题与解决方法(2)
1.SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length在edittext上输入几个字母,将光标移到前面,再将光标移到后面,就报了这个错误。后来在stactoverflow上找到了解决方法。将edittext的inputType属性值修改为 android:inputType="textNoSuggestions",就解决了。
2015-04-02 16:07:51
1037
转载 android 生成签名文件与APK打包(学习笔记)
生成签名文件是使用JDK bin目录下keytool工具:1.进入bin目录C:\Program Files (x86)\Java\jdk1.7.0_67\bin>keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore(android.keystore
2015-03-24 11:37:32
728
转载 多线程程序中操作的原子性
0. 背景原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操作?1. 多线程环境下对变量的读写操作是否是原子的?我们先从一
2015-03-23 17:10:36
511
转载 java中关键字volatile的作用
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)=========================分割线1============
2015-03-23 17:01:57
503
转载 View 绘制流程
本文为 Android 开源项目源码解析 公共技术点中的 View 绘制流程 部分分析者:lightSky原文链接View 绘制机制1. View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw 。整个 View 树的绘图流程在Vie
2015-03-05 14:26:40
450
原创 用adb命令修改手机默认安装位置到SD卡
1.打开DOS命令行 ,输入adb,回车,可查看命令帮助。2.adb devices 回车,显示设备列表:每个设备实例的输出都有如下固定的格式:[serialNumber] [state]022BTF7N43047029 device037c708040609357 deviceadb -s 022BTF7N43047029 shell 回车
2015-02-27 12:15:44
7344
1
转载 对 HTTP 304 的理解
最近和同事一起看Web的Cache问题,又进一步理解了 HTTP 中的 304 又有了一些了解。 304 的标准解释是:Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modif
2015-02-25 11:47:23
487
转载 高效代码审查:来自前质疑者的9个建议
本文由 伯乐在线 - drowzju 翻译,黄利民 校稿。未经许可,禁止转载!英文出处:Gareth Wilson。欢迎加入翻译小组。理论我知道。代码审查(Code Review)有助于:抓bug保证代码的可读性,可维护性在团队中散播代码的知识让新人适应团队的工作方式让大家接触不同的思路或者按另一种看法,代码审查就是极大的浪费时间。至少我对代码审查的最初感受就是这样。当
2015-02-15 16:25:05
604
原创 开发问题零碎总结
1.类的变量也就是类的静态变量什么时候会被回收? 开发中发现了一个问题,在activity finish,退出程序之后。再启动这个程序,静态变量的值竟然还是上次打开 程序的值,也就是说这个静态变量还没被回收。没被回收的原因其实是这个进程还在后台,从而导致这个静态变量没被回收。总结:正常情况下,静态变量在进程被杀掉后,这个进程的所有静态变量都会被回收。待续..
2015-02-15 15:06:40
925
原创 HttpClient忽略用户证书验证的方法
程序中出了这样的异常:javax.net.ssl.SSLException: hostname in certificate didn't match。httpClient.execute(httpGet);初步判断是证书的问题,准备采用忽略证书的方法解决,但在网上找了半天都没找到靠谱的代码解决,最后还是自己琢磨解决了。 得到一个教训,网上找答案是不靠谱的,因为具体问题需要具体分析,别人
2015-02-13 17:18:46
9191
1
原创 HttpClient:connection still allocated.解决方法
org.apache.http.client.HttpClient使用中,报了以下的异常:Invalid use of SingleClientConnManager: connection still allocated.Make sure to release the connection before allocating another one.此问题出现原因是并发调用同一个h
2015-01-20 12:17:43
9542
1
原创 CertPathValidatorException: Trust anchor for certification path not found解决方法
错误log:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. at org.apache.harmony.xnet.provider.jsse.OpenSSLSoc
2015-01-19 15:53:22
26985
8
原创 普通Activity跳转到MapActivity报错
从一个普通的Activity点击一个控件跳转到一个继承MapActivity的类MyMapActivity时,报错。Log信息: E/AndroidRuntime(15631): FATAL EXCEPTION: main E/AndroidRuntime(15631): java.lang.NoClassDefFoundError: xxx.xxx.MyMapActi
2015-01-09 17:35:45
985
原创 Android 检测网络连接状态
Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 然后,检测网络状态是否可用[java] view plaincopyprint?/** *
2014-12-14 19:39:13
1128
原创 Bitmap OOM问题解决及优化
资源1:http://stormzhang.com/android/2013/11/20/android-display-bitmaps-efficiently/资源2:http://my.oschina.net/mstian/blog/286408
2014-12-04 13:10:33
784
转载 21个挑战题,几杯咖啡的时间,来试试
我时不时地会给我的朋友和同事一些难题。我把这些称为咖啡时间的挑战。题目被设计成很小的,但在短暂休息时要反复考虑的题目。这些都是典型的不难的题目,并且通常都有多种解决方案。有时,人们用铅笔、纸和数学首要原则来解决这些问题。此外,人们也会通过写正则表达式、LINQ、Perl或Python脚本来解决*。解决方式有时优雅,有时用蛮力,这里并没有所谓正确或错误的方法,只要得到的是一个正确的答案。*我
2014-11-13 13:08:10
934
原创 android实现跑马灯效果(可以实现两个以上跑马灯)
本文用了继承自TextView的MarqueeTextView来实现跑马灯效果。原因是,跑马灯效果是需要TextView拥有焦点才会跑动的。而有时候TextView获得焦点会有点耗时,造成要等待一段时间跑马灯效果才会出来。另外,系统默认时只有一个TextView处于focused状态,而当页面有不少于两个跑马灯时,用TextView就不好实现了。
2014-10-30 10:13:36
3649
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人