- 博客(76)
- 收藏
- 关注
原创 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android问题场景解决办法:问题No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android场景...
2018-09-30 15:50:42
524
原创 mac book air 编译sqlcipher
编译SQLCipher0x01. 编译成静态库$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \ LDFLAGS="/opt/local/lib/libcrypto.a"错误:clang: error: no such file or directory: '/opt/local/...
2018-06-12 21:29:52
1323
1
原创 客服系统优化思路假想
客户端服务器机制,必然逃脱不了网络状况的影响,那么要把网络影响降低到最小的化,则必然要改进网络节点的优化. 但是由于客服系统和传统的聊天IM是有很大差异的, 因此节点的部署是比较特殊的.传统的IM业务架构: n n用户 <------> Service <------> 用户客服类业务架构: ...
2018-05-03 21:23:26
939
原创 Android应用架构开发和维护常见问题
0x01. 兼容性0x01. Android版本兼容性<接口容错>0x02. Android ROM缺陷<特定ROM的错误>0x03. 依赖包兼容性0x04. so库的兼容性0x05. 客户端本地接口扩展兼容性0x02. 业务功能0x01. 服务不能常驻内存0x02. 协议问题如何监控?0x03. 业务问题 如何发现?分析?定位?...
2018-05-03 21:09:27
292
原创 [BadTokenException] Unable to add window token android.os.BinderProxy@8c38b69 is not valid
0x01. 堆栈信息"---android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@8c38b69 is not valid; is your activity running?android.view.ViewRootImpl.setView...
2018-05-03 20:51:26
1130
原创 [bugfix][京东App插件]Make sure other views do not use the same id
插件化在目前主流app中已经广泛应用,虽说方案已经很成熟了,但是依然各种坑是层出不穷, 下面是京东咚咚作为一个插件集成到京东主App中碰到系列问题之一.0x01. 崩溃信息栈---java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android...
2018-05-03 20:35:02
611
原创 [Ubuntu]Sqlcipher命令行下解密微信WCDB数据库
0x01.安装Sqlcipher Ubuntu下使用SQLCipher命令行对db加密windows下的安装步骤忽略 自行搜索0x02.解密数据库通过sqlcipher打开加密数据库,解密后就可以直接通过SQL语句操作数据库.➜ sqlcipher-master ./sqlcipher z-cipher.dbSQLCipher version 3.20....
2018-05-03 20:14:36
3750
2
原创 android图片资源规范以及Bitmap内存管理分析
0x01. 设备兼容性0x01. 屏幕适配0x01. Convert dp units to pixel units px = dp * (dpi / 160)dpi是根据每个设备不同的,必须从设备上获取.DPI: Dots (or Pixels) Per Inch计算公式dpi = ( square_root ( horizontal_pixel...
2018-05-03 19:09:08
307
原创 解决 Failure [INSTALL_FAILED_TEST_ONLY]
0x01. 问题: Failure [INSTALL_FAILED_TEST_ONLY]➜ debug git:(master) ✗ adb install app-debug.apk app-debug.apk: 1 file pushed. 4.0 MB/s (176160 bytes in 0.042s) pkg: /data/local/tmp/app-debug.apk...
2018-04-25 15:34:03
419
原创 emacs使用org-mode导出中文pdf
0x01. issue: C-c C-e lp导出pdf中文乱码org-mode pdf wasn't produced 0x02. 安装LaTeXsudo apt-get install texlive-full➜ ~ sudo apt-get install texmaker0x03. 安装字库将C:/windows/fonts下你喜欢的字体拷贝到...
2018-04-11 20:06:49
4764
原创 Ubuntu16.04编译ffmpeg
0x01. downlaodhttps://ffmpeg.org/download.html0x02. 解压目录在ffmpeg-3.4.2中.0x03. 配置编译脚本文件名称随便取. 注意文件中的NDK相关配置修改为自己本机的.#! /bin/bash#NDK=D:/Android/sdk/ndk-bundleNDK=/home/iamcxl369/andr...
2018-04-11 17:53:50
1004
原创 Common Lisp的ubuntu16.04环境下安装
Common Lisp的ubuntu环境下安装0x01. emacs安装ubuntu上已经自带0x02. lisp安装sudo apt-get install common-lisp-controller0x03. slime安装sudo apt-get install slime0x04. 启动emacs里 Alt+x 输入 slime,回...
2018-04-09 21:58:48
513
原创 android中使用svg
0x01. gradle版本v2.0以上0x02. appcompat版本高于下面也可以compile 'com.android.support:appcompat-v7:23.2.0'0x03. build.gradle在module的buidl.gradle中添加下面属性.defaultConfig { vectorDrawables...
2018-04-09 21:56:47
248
原创 Ubuntu 16.04安装google-pinyin后输入法图标不显示在menubar上?
Ubuntu 16.04安装google-pinyin后输入法图标不显示在menubar上?0x01. 安装fcitx谷歌拼音sudo apt-get install fcitx fcitx-googlepinyin im-configim-config //这个命令没有什么用,配置后输入法图标依然没有显示到面板上.0x02. 排查错误➜ ~ fcitx-...
2018-02-10 08:36:51
1582
原创 通过SQLiteDatabase看谷歌如何封装sqlite3
0x01. SQLiteDatabase.java0x01. 代码位置/frameworks/base/core/java/android/database/sqlite/SQLiteDatabase.java这里有两个变量定义可以了解一下意思: // Stores reference to all databases opened in the current process.
2017-12-27 18:23:18
641
原创 Ubuntu下输入法ibus fcitx问题
一般Ubuntu上的标配:英文的桌面和系统环境,中文的输入法. 输入法常用的是iBus和Fcitx. 之前由于切换Unity桌面到Gnome3导致了AS的快捷键混乱(实际上是因为ibus设置导致).这次又尝试切换输入法到fcitx.0x01. 安装fcitx sudo apt install fcitx fcitx-googlepinyin fcitx-table-wbpy fc
2017-12-26 19:04:45
2407
原创 SQLite3.c中的一个bug:error: expected value in expression #if SQLITE_HAS_CODEC
I got a error: expected value in expression #if SQLITE_HAS_CODEC after I add the code in sqlite3.c as below:#ifndef SQLITE_HAS_CODEC#define SQLITE_HAS_CODEC#endifso I try to get the latest sqlite3.c
2017-12-26 14:02:18
1725
原创 Ubuntu上通过802.1x认证联网
802.1x网络认证802.1x 概述 它是一种通过认证保护网络的端口访问协议。 这种类型的验证方法在 Wi-Fi 环境中因该媒体的性质而特别有用。 如果 Wi-Fi 用户通过 802.1x 进行身份验证来访问网络, 接入点上会打开个用于通信的虚拟端口。 如果验证不成功, 则不会提供虚拟端口, 并将阻断通信。802.1x 验证分为 3 个基本部分: 请求者 在 Wi-Fi 工作站上运行的软
2017-12-26 12:24:52
10961
原创 OutOfMemoryError pthread_create (1040KB stack) failed Try again
0x01. OutOfMemoryError场景1:java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try againjava.lang.Thread.nativeCreate(Native Method)java.lang.Thread.start(Thread.java:1063)//......手机内存情
2017-12-06 19:36:49
13532
1
原创 从点击Laucher中的图标开始分析加载一个app的第一个界面的流程
0x01. LauncherLauncher就是一个android应用,管理管面上的应用安装和卸载.Launcher在Android源码中的位置.packages/apps/Launcher2orpackages/apps/Launcher3对于Android来说,Launcher也是一个App只是它启动比较早而已, Launcher管理着用户安装到手机上的app,即用户通过点击可以打开一个app或
2017-11-17 12:47:47
1128
原创 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
机型信息:android4.0系列0x01. 崩溃堆栈"---java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementationcom.huawei.android.pushagent.c.a.e(Unknown Source)com.huawei.android.
2017-11-02 19:47:59
1272
原创 Wrong state class, expecting View State but received class xxx Make sure other views do not use the
0x01. 崩溃信息栈---java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.widget.TextView$SavedState instead. This usually happens when two views of different
2017-11-02 19:44:17
3169
2
原创 java.lang.InternalError: Thread starting during runtime shutdown
java.lang.InternalError: Thread starting during runtime shutdown0x01. 堆栈信息这里借用别人的堆栈信息,出错原因都是一样的.Fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown at java.lang.Thr
2017-10-25 20:58:41
5073
原创 error: insufficient permissions for device: verify udev rules
error: insufficient permissions for device: verify udev rules0x01. 查看设备➜ ~ lsusb Bus 001 Device 002: ID 8087:8001 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 003 D
2017-10-25 18:03:30
1058
原创 [bug-fix]无人客服聊天界面底部按钮点击没有响应
聊天界面底部按钮点击没有反应0x01. 问题收集0x01.用户反馈最近每天都收到1-2例用户反馈聊天界面按钮点击没有反应的问题. 分类后有两种描述:0x01. 输入框输入文本后点击发送按钮没有反应0x02. 整个聊天界面的底部面板都点不动 表情/语音/输入框/加号都点不动.0x02. 问题分析第一反应是点击事件被拦截了,但也不应该是偶现. 为了验...
2017-10-24 21:02:53
409
原创 IncompatibleClassChangeError
IncompatibleClassChangeError0x01. 规范Java Language and Virtual Machine SpecificationsThe Java Language Specification, Java SE 9 Edition The Java Virtual Machine Specification, Java SE 9 Edition0x02. 堆栈
2017-10-24 20:30:10
1353
原创 SQLiteException: not an error (code 0): Could not open the database in read/write mode
android.database.sqlite.SQLiteException: not an error (code 0): Could not open the database in read/write mode0x01. 崩溃信息---android.database.sqlite.SQLiteException: not an error (code 0): Could not open
2017-10-18 18:36:35
10395
原创 java.lang.SecurityException: Unknown calling package name, com.google.android.gms.common.internal.zz
java.lang.SecurityException: Unknown calling package name, com.google.android.gms.common.internal.zzs印尼项目碰到一些崩溃,每天大概有几十例,比较奇怪的是看不出来是App导致的,从崩溃信息上看是来自GCM. 比较棘手,但是这个问题并不紧急,就临时跟进这个问题.了解到一些信息: - 该崩溃是最近一个
2017-10-13 18:26:30
5236
原创 SSLSocket getInputStream()阻塞问题分析
SSLSocket getInputStream()阻塞问题分析这里的分析源自一个bug:我们的无人客服SDK在接入京东金融后,从京东金融App第一次打开无人客服业务正常, 当用户处于无人客服聊天界面中然后从历史栈把京东金融移除掉(强制干掉京东金融App的进程),然后马上再次启动京东金融App并且进入到无人客服,会发现Socket对象的getInputStream()方法阻塞了(7-12秒). 正常
2017-10-13 12:17:20
3173
原创 Handler实现原理和流程分析
Handler对象0x01. 使用场景:-0x1.1. 线程间通信 Handler最常见的是在Activity中实现工作线程和UI线程的通信功能.比如在异步线程的回调中不能直接处理UI,那么则必须通知UI,让主线程去处理UI相关的业务逻辑.-0x1.2. 工作线程中事件的有序业务逻辑处理HandlerThread+Handler来实现一个工作线程中有序的多任务处理框架.0x02. 用法示例下面代码
2017-09-19 20:11:06
503
原创 360Replugin插件启动Activity慢导致ANR的问题
0x01. classloader打印classloader try { ClassLoader loader = getClassLoader(); if (loader != null) { LogUtils.e(TAG, ">>><<< loader:" + loader.toString());
2017-09-18 19:36:21
1807
原创 Android7.0 webview android.content.res.Resources$NotFoundException
Android7.0 webview android.content.res.Resources$NotFoundException0x01. 崩溃日志首先从崩溃日志的信息上就能看出来不是应用层的资源问题。 1.source id: 0x20b00000 2.崩溃栈的记录是在chromium创建Actionmenu的时候(长按webview中的一段文本)09-15 15:22:25.072 3
2017-09-18 19:15:47
1671
原创 Android开发常用git命令
代码仓库的管理是开发中非常重要的事情之一, 尤其是在一些大项目或者和第三方接触频繁(发版)的时候,版本的控制就越显得重要,工欲善其事,必先利其器. 下面这些是我平时自己工作中要用到的一些git命令,有的人喜欢用gui操作,有的人喜欢用命令行. 这仅仅是喜好习惯问题. 当然这些命令也不是我原创的,也都是在使用中学习和查找然后自己总结的一些常用命令. 基本上能够满足平时的工作需要. 0x01.创建本地
2017-09-01 13:16:05
853
原创 JAVA类的生命周期和虚拟机加载过程
类的生命周期这些是以前看JVM规范时候做的笔记,也不算笔记就是抄的原文. 做Android开发用java开发应用,必然需要了解java中的类的生命周期,这样才能在碰到问题的时候大概的清楚是怎么回事,知其然,并且知其所以然.在Java虚拟机中一个java类从文件加载到到内存生成对象到虚拟机销毁这个java对象总共要经过: 加载,链接,初始化,使用,卸载这五个步骤. 其中链接部分又可以分为:验证,准备,
2017-08-31 12:33:32
262
原创 Activity中重载的dispatchTouchEvent 和 onTouchEvent不被调用
0x01. dispatchTouchEvent 和 onTouchEvent不响应dispatchTouchEvent做为Activity的顶层事件分发接口怎么会不响应?肯定是被拦截了!0x02. getWindow().getCallback()在Activity的onResume中把getWindow().getCallback()打印出来. Android应用程序窗口(Activity)
2017-07-11 17:57:00
2843
2
原创 Python:Flask环境搭建
0x01. 准备工作iamcxl@iamcxl-ThinkPad-T450:~/pi$ mkdir flaskiamcxl@iamcxl-ThinkPad-T450:~/pi$ cd flask/iamcxl@iamcxl-ThinkPad-T450:~/pi/flask$ lsiamcxl@iamcxl-ThinkPad-T450:~/pi/flask$ mkdir myprojectia
2017-06-28 15:06:55
1254
原创 webview:"找不到网页" or "page not found"
webview:”找不到网页” or “page not found”解决办法:实现WebViewClient下面的方法:@SuppressWarnings("deprecation")@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
2017-06-27 15:21:32
1119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人