- 博客(49)
- 问答 (2)
- 收藏
- 关注
原创 关于python from .. import .. 以及 pycharm对于source root bug的一个通用解决方案
pycharm的source root。加了source root也不会加入syspath. 并且最大的坑在于你去掉了source root重新导入也显示你曾经加过source root但已经去掉source root的文件夹是source root ,这句话很绕口 但你可以自己手工尝试一下有多坑。我们接着这个思路来看,既然不包含当前文件夹 那我们干脆设置上一级路径为source root不就好了嘛。的路径,也就是说 如果from ..的这里写入的是当前文件夹 是会报错的,因为无法找到当前文件夹。
2023-08-24 15:58:30
781
原创 linux学习小记---centos和ubuntu对于文件下载安装的区别。
centos是redhat的衍生版,与redhat不同的是redhat的一些软件是收费的,而centos是免费的。他们都是采用rpm包的形式通过yum方式来下载安装。为什么要采用yum代替 rpm呢 因为rpm需要手动去找源文件,而且这个源文件是不包含自己的dependencies的,还需要手动去找dependencies,还不确定dependencies有没有dependencies...相当麻...
2018-03-19 12:09:38
526
原创 关于u8BOM,LF,CRLF的认知。
首先说下遇到的问题。工作需要,有一个json文件需要被签名后使用。当时为了开发方便用记事本另存为u8然后签名,校验通过,用git push 到repository。 这时候问题来了,发现本地build出来的apk对json文件签名的校验是没问题的,但是jenkins build出来的就是无法识别json文件的签名。 来回的折腾后首先发现在linux下用vi打开会看到&...
2018-03-02 10:39:52
892
原创 关于AndroidStudio的首字母大小写敏感和自动导包的设置问题。
换了环境 总是忘记怎么设置,记录一下方便开发。第一个是在settings里面搜索Auto Import然后给 Add unambiguous imports on the fly 和 Optimize imports on the fly 打钩即可。第二个是在settings里面搜索case senstive completion。 然后设置为none。
2018-01-03 10:31:28
964
转载 关于gitignore的有时候会无效的一个新认知
利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。现象:在.gitignore添加file1文件,以过滤该文件,但是通过git status查看仍显示file1文件的状态。原因:在git库中已存在了这个文件,之前push提交过该文件。.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些
2017-12-26 14:15:35
322
原创 关于Parcelable传递时候的异常 Unmarshalling unknown type code。
工作需要 用intent 传递了一个 parcelable 的list.结果在取的时候抛异常了。异常如下:Parcel android.os.Parcel@1bf4a17f: Unmarshalling unknown type code 3276899 a找了半天才发现 读和取的顺序必须是一致的 不然就会报错。附上例子代码: public s
2017-11-24 15:45:47
3617
原创 关于 Failure [INSTALL_FAILED_DEXOPT] 的解决方案。
一同事在修改了package/app下面的工程之后,不想full build于是直接mm之后 找到APK直接adb install报错如下 Failure [INSTALL_FAILED_DEXOPT] 先来说说问题产生的原因。如果我们在user版本用mm编译apk时,会在out目录下生成.apk和.odex两个文件,是为了加快运行速度,把dex分出来做的预优化处理。但是
2017-11-01 17:43:57
3319
原创 关于系统内置apk签名问题。
近期接到个需求,是得将apk build到系统里,并且在平时的过程中还是可以进行调试的。那么问题来了,我们都知道系统内置的apk是不能卸载的,那能不能reinstall呢。一般的系统apk,android.mk都有这么一句:LOCAL_CERTIFICATE := platform对于这句而言,不论你内置的apk有签名与否,install之前都会将apk做resig
2017-09-29 15:10:31
1438
原创 camera清晰度问题
一切关于camera清晰度的问题,都是跟硬件有关系的,所以parameter必须得设置对了。下面是代码: Camera.Size maxPictureSize = mParameters.getSupportedPictureSizes().get(0); Camera.Size maxPreviewSize = mParameters.getSupp
2017-09-20 10:56:54
1091
原创 以Android L读取系统所有logcat并写入文件为例分析Android 以添加系统进程的方式申请selinux的权限执行shell脚本,以及avc:dined应该怎么申请权限
首先说说环境:基于Android L的aosp修改(修改对于此文基本无影响)过的sorce code.本来的思路是通过setenforcing permissive来开启宽容模式,可是宽容模式就是selinux的debug模式就相当于关掉了seliux毫无安全可言,而下面说到的,是以我的读取系统logcat并写入文件为例,来讲在selinux中申请我们所需的权限。系统服务:在ini
2017-09-10 18:54:31
2070
4
原创 Android抓取系统logcat以及selinux对其影响
Android kk 之前,要读system/bin/logcat 只需要READ_LOG的权限就可以了。Android kk 之后 , Google正式有限制的启用SELinux来增强安全防患。但是kk版本之后Google只是有限制的启用SELinux,即只针对netd, installd, zygote, vold以及他们直接fork出的child process 使用enforcing
2017-09-10 13:23:12
1032
原创 Error:null value in entry: incrementalFolder=null
前几天公司电脑AS卡住了。任务管理器杀掉再起来之后AS就报了这个错:Error:null value in entry: incrementalFolder=null找了很多帖子论坛网页(包括stackoverflow)结论千篇一律的让把.gradle文件夹删除了 然后说是重新clean build 一次就行。反复试了5,6次都没生效。而且主要我这边
2017-09-05 16:37:11
755
原创 (源码分析)Android系统时间-自动获取
工作关系查看了 设置界面 自动获取时间的code。点开设置-时间日期 第一眼就能看到 自动获取时间 和 自动获取时区的勾选框,那么时间和时区是怎么自动获取的呢。首先我们要知道的是,当前页面的显示是在packages/apps/Settings/src/com/android/settings下面的DateTimeSettings.java中显示的。然后我们可以看到 在o
2017-09-01 16:19:06
4711
1
原创 System.getProperty("line.separator") 的含义
在Java中存在一些转义字符,比如"\n"为换行符,但是也有一些JDK自带的一些操作符比如 : System.getProperty("line.separator")这也是换行符,功能和"\n"是一致的,但是此种写法屏蔽了 Windows和Linux的区别 ,更保险一些.今天在代码里面看见别人这么写了,记下学习一下,以前一直都写的"\n".
2017-08-30 09:56:37
829
转载 对于java关键字volatile,和transient 的理解
之前有看到文章写到写单例的时候最好加上关键字volatile,感兴趣的朋友可以自己去找文章。一直对于volatile的理解浅显,直到看到一篇文章,下面将链接share出来,感兴趣的朋友可以去看看。点击打开链接
2017-03-15 15:58:15
293
原创 关于Camera和MediaRecorder的问题
近期接到需求需要Camera配合MediaRecorder进行preview转视频的录制,问题1:从Camera切换到MediaRecorder的时候,会遇到1秒的卡顿,两种方式,1是将recorder的videoSource设置成surface,但是stopRecord的时候会报sropFailed。2是将recorder的videoSource设置成Camera并且调用setCamer
2017-03-15 15:50:41
728
原创 更新一些git命令
1.git reset 文件名2.git rm --cached 文件名两种方法都可以做到。从命令上而言 第二种更符合逻辑,但是会一不小心删除文件。老是忘记,记录一下以免忘记。-------------2017/1/19-------------git log -1 --raw 可以在看到本地的commit修改了哪些文件。----------
2017-01-11 13:53:24
394
原创 数组转集合增删操作时候的UnsupportedOperationException
数组转集合 我们可以调用Arrays.asList将数组转换为集合 但是再进行增删操作就会报错UnsupportedOperationException。这是因为Arrays.asList得到的List其实是一个“假的”List,这个list是没有对remove和add进行重写的,所以就抛出了这个异常。我们可以自己创建一个List然后调用addAll,用“真”集合添加"假"集合的元素然后进
2017-01-10 16:46:38
325
原创 Vi模式下x跟wq的区别
在vi编辑页面,x跟wq的作用都是保存并退出,那么他们的区别是什么呢:x没有修改就不会 修改文件修改时间 强制保存等等。wq不论保存时刻的结果跟以前结果有没有区别都会进行强制的保存和修改文件修改时间。
2017-01-05 16:18:13
1775
原创 make sdk
最近有需求需要编译自己的sdk, 研究了下 build sdk需要在编译好的源码的images的基础上进行。然后执行make win_sdk是编译windows版的SDK,编译windows版的SDK需要先编译LINUX版的SDK ,make sdk。如果没有执行make sdk会默认先去build LINUX下的SDK。所以如需要编译win下的SDK直接make win_sdk即可。
2016-10-28 15:00:37
1416
原创 持续更新linux下遇到的问题。
--------------16/9/23------------anil@anil:~$ sudo apt-get install default-jre[sudo] password for anil: Reading package lists... DoneBuilding dependency tree Reading state information... D
2016-09-23 12:02:26
672
原创 Ubuntu下编译源码
Build1. Ubuntu系统安装由于当前的android系统只能在linux环境编译,所以需要安装一个可以build的linux系统,如果对linux不是很熟悉,可以安装ubuntu desktop 64版本。请参考官方文档或者网上资料安装desktop 64位版本如果主要以windows为主要工作环境,可以在windows安装虚拟机软件(virtualbox或者vmwar
2016-09-22 13:57:27
1879
原创 linux下命令
持续更新 :sudo---相当管理员权限apt ---安装工具的命令rar下解压是 rar x就可以解压tar就得是tar -xjf。还有一个zip很好用的工具是p7z。7zr x。sudo dpkg -i *.deb 可以安装.deb文件--------------------9/23更新----------------------------
2016-09-22 13:33:34
1220
原创 TextView清空默认自带的padding
设置这个即可去掉默认的下内边距,改字体大小也有效:android:lineSpacingMultiplier="0.8"下附stackoverflow连接:http://stackoverflow.com/questions/6863974/android-textview-padding-between-lines
2016-09-22 11:13:39
4741
转载 ] Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
mu0206mu的专栏目录视图摘要视图订阅深度学习代码专栏 攒课--我的学习我做主 开启你的知识管理,知识库个人图谱上线 [置顶] Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
2016-09-22 10:45:08
366
原创 自己的chinglish弱爆了,不定期记录自己遇到的词汇。
算是知识储备吧,不然老忘。prior to ..在。什么什么之前 [ˈpraɪɚ]A transaction can only be committed with this methodprior to its containing activity saving its state.一组在他所控制的activity保存状态之前只能用此方法来提交的事
2016-04-14 10:49:14
317
原创 给自己一个深深的差评,然后潸然泪下,痛改前非。
切换Android Studio也已经要将近1年了,一直满足于只要能满足日常代码需求就可以了。 前几天项目需求要看看比较火的几个HotFix项目,发现Nuwa在AS2.0有BUG必须降Gradle版本,惊奇的发现,自己连gradle版本都不会配置,更别说编写了(平时都是leader在编写)。就在那一秒,深深的感受到了自己的程度,差点没哭出来,纠结什么时候开始,自己工作态度变成这样
2016-03-17 11:57:16
512
原创 安卓开发小技巧。
adb shell dumpsys window windows > + 路径文件可以把相关操作导入文件操作手机后搜索mCurrentFocus可以看到对应界面的包名类名。更方便查找一个类。
2016-01-22 17:38:55
391
原创 使用Android Support Annotations优化代码
原文链接:http://michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/本文有翻译+跟人使用心得。如果你还没有听说过Android Support Annotations 函数库,你将错过一个整洁的新软件包,它有助于你捕获程序中的bugs。该函数库包含了许多的Ja
2016-01-07 12:02:25
520
原创 onCreate的savedInstanceState和onRestoreInstanceState 方法的区别。
总结了下:oncreate是在onstart之前执行是activity声明周期,而onRestoreInstanceState 是在onstart之后onresume之前执行。stackoverflow上看到的一个比较好的解释:onRestoreInstanceState is redundant because you can easily restore state in
2016-01-06 11:16:31
2229
转载 Android Studio鼠标移到类或者方法上面显示方法注释doc
Ctrl+Alt+S进入设置IDE Settings--Editor--Show quick doc on mouse move Delay(ms) 500
2015-12-15 10:03:42
815
原创 在有软键盘的情况下返回键的处理
我们知道安卓在有软键盘的时候点击返回键,如果用onkeydown去拦截,那么这次的返回键是被软键盘的隐藏拦截掉的。那么如果要在软键盘弹出的情况下第一次返回键就能被我们自己拦截该怎么做呢?通过观看源码可知,view身上有个方法是dispatchKeyEventPreIme,这个方法是按键处理转发到view视图的分发方法,接着会调到onpreime, 这个方法是任何按键跟view关联的最先调用的方
2015-09-06 15:52:20
1546
原创 滚动view的嵌套。
分享个scrollview和内层滚动view嵌套的问题。嵌套需要给内层滚动view高度。一般来说有动态算高度。。重写内层view onMesure 用线性布局代替内层滚动view等等等。。。第一种。不推荐。。。。都是子线程和callback太影响用户体验了。第三种会把大量view代码跟逻辑代码写一起不推荐。推荐第二种 可以完美解决。但是会有一进页面就直接自动滚动到内层滚动v
2015-07-14 09:40:15
378
原创 linux学习小记。
/home是用户群组所在的目录,pwd可以查询当前所在的目录,touch 可以新建文件 mkdir可以新建文件夹,用mkdir -p /.../..../.....可以新建多级目录。大致意思就是mkdir -parent的意思。chmod go +(-)rwx 可以增加或者删除文件的读写执行的权限。 使用cd ~可以快速的切换到用户群组所在的目录。cp +文件名 +路径可以复制文件,但是不能复制文
2015-05-11 12:06:15
424
转载 安卓软键盘相关
有个哥们给EditText对应的Activity配置了stateHidden.然后问 问啥在textchange的时候调用接口会隐藏软键盘,原因如下:The AndroidManifest.xml Fileandroid:windowSoftInputMode=["stateUnspecified","stateUnchanged", "stateH
2015-04-01 18:18:18
578
原创 贝塞尔曲线
由于工作需要,最近在研究一个类似QQ消息划掉的效果(很多强迫症患者童鞋对这个简直是爱不释手,当然这个也包括我自己)。这个效果的核心其实就是贝塞尔曲线,下面附上百度出来的贝塞尔曲线的原理:贝塞尔曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。在历史上,研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定四个点的思路设计出这种矢量曲线绘制法。贝塞尔曲线的有趣
2015-04-01 11:03:15
651
原创 MotionEvent getX()和getRawX()的区别。
getX()是相对于view获取的x坐标,而getRawX()是相对于屏幕获取的x的坐标点(相对物仅仅是屏幕,跟任何东西都无关)
2015-04-01 10:13:44
452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人