- 博客(100)
- 资源 (6)
- 收藏
- 关注
原创 安全组配置规则
背景:之前一直不重视安全组配置,知道昨天发现服务器被挖矿攻击Failed opening the RDB file web (in server root dir /etc/cron.d) for saving: Permission denied12281:M 14 Jun 2021 23:21:29.141 # Background saving error12281:M 14 Jun 2021 23:21:35.054 * 1 changes in 900 seconds. Saving.
2021-06-15 12:05:25
838
1
原创 将Excel转换成为数据库的方式
背景:项目需要,将Excel内容,转换为数据库格式步骤一:下载excel格式文件步骤二: 将excel另存位txt(UTF-8/UTF-16),我们的目的是导出csv,但是直接导出的话,格式没办法指定,所以过渡一下步骤三:将txt中的 ( )空格替换为,另存为csv步骤四:将csv直接转换为sql指令文件,(https://www.convertcsv.com/csv-...
2020-03-27 10:11:38
7271
原创 Android开源工程整理
UI开源库集合:github开源集合:最新Android框架排行榜,上百项资源汇总不容错过PS:都是基础公共库,使用起来非常方便(基本上都是公共组件,适合学习)Android 常用开源库总结(持续更新)PS:UI组件比较多Android实际开发中实用的第三方(开源)框架PS:UI组件,与其他的比较,干货一般20个很棒的Android开源...
2019-10-30 11:31:15
533
1
原创 Flutter 体积压缩
背景:flutter体积一直是一个痛,所以注定目前阶段,一些产品接入成本过高,所以压缩体积就是一个比较明确的需求,网上主流的就是闲鱼的拆剪方式,这里记录一下。具体实施:1.通过增加--dwarf_stack_traces,--print-snapshot-sizes,--obfuscate命令压缩体积./gradlew clean assembleRelease -Pextra-ge...
2019-06-05 11:50:51
11083
1
原创 mac电脑将aliyun的文件导出
背景:使用云服务器的时候,没有ui界面,有些东西看的不太方便,所以需要导出来查看方法:1.通过sftp连接到服务器sftp root@47.xx.x.xxx2.ls 找到对应的文件sftp> cd logssftp> lsalinode clean ...
2019-06-03 19:18:13
779
原创 搭建egg服务器供客户端使用
背景:最近一些工作涉及到服务器的知识,之前搭建服务器使用的是hush-framework,好久没用,最近感觉egg框架比较简单流行,这次为了快速,选择egg框架,官方将成已经说的很清楚了,但是比较多,所以简化一下,记录下来。官方地址教程:https://eggjs.org/zh-cn/intro/quickstart.html步骤一:直接使用快速初始化(这时目录中应该有一个...
2019-06-02 14:02:21
7952
原创 Flutter 混合开发maven方式打包
背景:目前所有使用flutter的大项目一定是混合开发,所以flutter工程一定是以maven方式让大家使用才是最方便的,目前网上教程只有闲鱼有一些简单的介绍,对于想要自己使用来说,还需要完善很多细节,所以在此记录,方便后面使用。打maven原因:1.公共库开发,maven导出让多个产品线使用才能达到最大效率利用 2.使用flut...
2019-05-29 20:23:32
2322
4
原创 facebook App links 接入
背景:游戏产品需要接入facebook分享,这就要使用到facebook的App links功能,查看官方网站,遇到了一些坑,发现国内很少有人有这方面的介绍,记录下来供后来人使用。首先了解一下:facebook的App links与Deep links不是一个东东,Deep Link 是facebook专门为广告提供的参考:https://developers.facebook....
2019-05-23 20:00:04
10239
原创 IOS pod 使用
背景:之前只是简单的使用flutter或自己创建一个工程简单的玩一下ios,最近打算使用一些第三方的公共库,就需要使用pod工具,在此记录下来。1.安装cocoapodssudo gem install cocoapods2.进入工程目录下,使用podpod install第一次安装需要时间比较长后面就会快一些3.编译下面以luaview为例,进行整体接入测试:1....
2019-04-08 15:40:08
7907
原创 grade 依赖关系坑记录
背景:我们经常使用maven依赖的时候,经常会出现各种版本不统一的问题,尤其是Androidx出来之后,经常会有同一个类在不同包中出现的情况,这时就需要exclude掉不需要的模块,但是最近遇到一个奇怪的问题就是exclude之后,依赖关系仍然存在,研究了一下原因记录下来。首先我们查看依赖关系的命令是gradle dependencies那么为了减少干扰信息,我们只关注debug...
2019-04-04 21:32:43
679
原创 为什么国内的高龄程序员都会被淘汰
背景:今天与Firebase的中国区开发及负责人交流了一下Filebase相关功能,感触还是挺深的。最直接的感受就是国内的大部分开发都旋入了开发能力与资源不足的恶性循环中今天在交流过程中,firebase重点提到了两个功能,一个是Predictions(预测),另一个是A/B Testing(A/B测试)Firebase虽然也是一个工具库,但是它的定位是从开发->线上...
2019-04-03 20:39:02
2064
原创 文件内容加解密与压缩
背景:在做动态化的时候,最终选用脚本语言实现动态化方案,但是不希望脚本语言被别人看到,所以采用打包的时候,将脚本文件加密,然后压缩为压缩包。在代码运行的时候,直接加载解密之后的byte字节,这样就做了一步简单的代码保护,虽然内容也都是东拼西凑的,但是网上很多方案不是有bug就是说的不清楚,所以记录下来。实现:首先是文件加密(AES加密):第一步:需要先生成秘钥文件并且保存...
2019-03-06 16:30:29
575
原创 studio插件重导入错误
今天将之前的android studio 插件导入再次使用的时候,发现不能用了错误1:Run configuration error: no plugin module specified for configuration这个错误是因为idea默认生成了iml文件,将 PLUGIN_MODULE 改为了 JAVA_MODULE所以会有这个错误 但是改完之后,又发生了下面的错误...
2019-01-29 18:19:29
1449
原创 android 数据库锁的问题
最近在项目中遇到一个错误:12-26 17:29:10.501 32592 32644 W SQLiteConnectionPool: The connection pool for database '***.db' has been unable to grant a connection to thread 1378 (thread-pool-0) with flags 0x2 for...
2019-01-10 14:29:43
2727
1
原创 jeb 高级教程之动态调试
上一篇我们介绍了jeb的安装和简单实用,本章介绍一些高级实用技巧:本章演示所使用的软件就为之前共享的软件, 1.打断点是我们经常使用的一些手段,但是调试别人apk的时候,相对来说就很难了,一方面是因为release模式,另一方面是因为没有代码。我们在之前攻防篇介绍过很多种动态调试的方法,但jeb的使用一直没有介绍,今天在这里补充一些这方面的知识:1.首先我们以调试模式启动待...
2018-12-07 11:55:18
11231
4
原创 Kotlin 并没有想的那么好
kotlin 越来越火,但使用的越多发现不顺手的地方也越多。最近发现了崩溃:11-17 00:54:07.355 266-266/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------11-17 00:54:07.359 266-266/? A/DEBUG: Abort message: 'art/r...
2018-11-17 17:52:14
13141
4
原创 反编译进阶之路
前言:本章所讲的主要是工具的介绍,虽然起到主要作用的是人,但一款好的工具其实是可以帮助开发者更快的分析出结果的。本章介绍三个工具:1.入门级反编译工具:Apktool、dextojar,当初看过这个工具的开源介绍,而且用这种技术做过热更新的差分工作,但不得不承认,这个工具用起来还是有很多不方便的。 2.初级反编译工具:jadx,这个工具是无意中发现的,比apktool要方便一些,不...
2018-09-22 12:00:45
1234
原创 Flutter 混合开发黑屏问题解决办法
最近在将Android项目中嵌入Flutter工程的时候,遇到了一个头疼的问题,就是从原生项目中直接调用Activity的时候,会发生黑屏的情况(并不是所有机器,我在模拟器上加个透明主题就很容易解决,但是在真机上不行)。参考教程:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps即使按照教程设置windo...
2018-08-14 20:31:04
12252
3
原创 Android Bundle App内部实现原理
core中的代码 首先我们在代码中调用了manager = SplitInstallManagerFactory.create(this)1.SplitInstallManagerFactory.classpublic class SplitInstallManagerFactory { public static SplitInstallManager...
2018-07-28 17:51:27
5764
6
转载 Anr 分析
看到这篇文章写的挺好的,忍不住转载了 https://blog.youkuaiyun.com/yxz329130952/article/details/50087731
2018-07-27 17:11:30
344
原创 为什么说flutter是未来移动技术的发展趋势
其实我也并不认为flutter一定是移动技术未来的发展趋势,但是可以确定的说,flutter的方向是没有问题的。即使它不会是成为下一个跨平台技术,也会有一个相似的技术来统治移动平台的发展.下面来阐述为什么flutter是一个趋势:我们回顾移动的发展历史,从11年我开始接触Android 和 Ios开发的时候,大家用的最多的就是原生开发,...
2018-07-02 21:11:28
16760
2
原创 Flutter engine编译篇
背景:之前调研过移动方向的技术发展趋势,我觉得flutter的方向是未来的一个方向.但是不是flutter这种技术暂时还不好说,但fluuter作为第四阶段技术,确实相比较RN与Weex这些第三阶段的技术来说,性能与跨平台都是有一定的优势的。所以这个一定是值得花时间来调研的一个技术.这里将我掌握的知识记录下来,方便后面回顾。学习一种语言,最简单的就是看源码,看源码第一步就是先编译。所以我们先搭建编...
2018-07-02 14:02:22
4357
原创 Cordova源码深入分析-第五讲
上一讲将主体流程和框架都已经介绍完了,再次查看整个代码的时候,发现我还是有一些细节并没有列举出来,例如之前只是介绍了addJavaScript一种方式实现通信,实际上还有另一种通信方式就是prompt方式,本讲再次介绍一下。prompt有几个优势:1.可以避免掉android 4.2以下,js安全问题2.可以实现同步调用,直接返回值下面开始分析代码逻辑:重复的位置,不再累述。直接来到cordova...
2018-03-13 18:02:38
661
原创 Cordova源码深入分析-第四讲
前面把插件在js端的初始化,与js->Native->js端的通信都介绍了一下本章介绍一下,在native端的插件初始化流程在介绍所有的之前,我想先上一段代码(插件配置):<?xml version='1.0' encoding='utf-8'?><widget id="io.cordova.hellocordova" version="1.0.0" xmlns="...
2018-03-13 15:33:47
518
原创 Cordova源码深入分析-第三讲
上一讲讲解了js端,调用到java端的代码逻辑这一讲,主要介绍,js->native带有callback的形式,是如何调用回去的上一篇介绍到了调用照相机代码的地方,在最后调用了:sendPluginResult这里调用一下: @Override public void sendPluginResult(PluginResult cr, String callbackId) {...
2018-03-13 12:16:49
631
原创 Cordova源码深入分析-第二讲
上一篇文章中介绍了cordova插件初始化流程,本文开始介绍,任何调用到java代码上文已经介绍到调用 navigator.camera.getPicture(onSuccess, onFail, { quality: 50, sourceType: Camera.PictureSourceType.CAMERA, destinationType: Camera.Desti...
2018-03-13 11:09:43
1151
原创 Cordova源码深入分析-第一讲
最近在研究一些新技术方向选型,正好有一些需要借鉴cordova的框架设计模式,所以研究了一下整个框架的设计思路,在此记录下来。学习的过程中,主要学习他的一下几个方面的内容:1.插件是如何注册的2.Js端是如何查找到对应的插件的3.任何从Js端调用到java端的4.插件的命名是任何与桥的命名匹配上的。第一部分是插件任何注册上的插件的注册分为两部分:先上一张时序图这个流程按照时序图来看很简单,比较核心...
2018-03-12 19:44:50
1185
原创 Kotlin 第三讲 :实战第一课-变量的声明
背景:最近google动作比较大,1.Flutter发布了beta版本2.Dart语言再次成为大家讨论的热点从整个的背景来看,google想要做的一件事情就是统一一种可以在任何平台上都可以使用的语言,无论是Dart还是Kotlin其实都是这个趋势,虽然很难但凭借Google在行业内的影响力,未必没有办法实现,有时间我会将整个Dart的发展历史与大家介绍一下,大家就知道google在这件事上有多么上...
2018-03-07 12:02:37
266
原创 搭建Opengrok本地服务器
最近搭建Opengrok本地服务器本地ubuntu上搭建的非常顺畅,虽然需要几天时间,但都是花费在下载代码,同步代码,同步index的时间上,没有什么难点,主要参考两个文章:Ubuntu 16.04下快速搭建OpenGrok for Android NAndroid 镜像使用帮助但是老大让搭建到服务器上供全公司人使用,服务器的环境是ubuntu 14.4版本,tomca
2017-11-29 17:43:02
1595
原创 Android Log的多场景使用
背景:不同情况下,我们有不同的需求,下面我们总结一下所有的case采用不同的策略。方案一:通过一个开关,决定是否输出log,也可以决定是否输出到文件,方便我们调试使用。package ls.utils;import java.io.PrintWriter;import java.io.StringWriter;import java.io.Writer;import
2017-10-11 09:44:47
548
原创 如何管住自己的log
背景:我们大多数情况不希望我们的log在应用上线依然被看到,所以我们可以采用以下的几种方式来限制住。方法一封装一个类两个作用:1).通过一个debug开关决定是否输出log2).可以决定是否写入文件但这样还是有问题,就是我反编译代码之后,能看到log,方便别人破解代码,就出现了方法二在每一句log上都增加debug开关,debug开关同一控制if
2017-10-10 16:04:23
410
原创 Gradle插件之判断环境环境变量
背景:在设计插件化开发的时候,涉及到插件和宿主同时编译,但不想依赖dependency属性来维护顺序,而是通过执行顺序来保证,但是遇到一个问题就是当配置了org.gradle.parallel属性之后,就变成平行编译,同时进行谁先谁后就没有办法保证了,所以不允许设置这个属性,但是有几十个产品线,不可能我每个团队都通知一声,而且还有新同事,一旦出现问题,不清楚的情况,可能耗费大家的一
2017-09-07 15:47:44
2845
原创 程序员如何规划自己的职业生涯
程序员的职业发展书籍1.算法与导论2.设计模式3.如何预防颈椎病4.如何治疗颈椎病5.活着6.如何转行这看似一段程序员自黑的段子,但作为老程序员不得不说这真的不是一个段子,程序员是一个高风险职业,很多人对自己的职业生涯没有清晰的概念,以至于最后落得不得不转行的尴尬局面,这个转行一般有两个原因,一个是技术跟不上,一个是身体吃不消。今天正好有时间,结合自身的职业生涯规划,来分享一下个人心得,希望有人可...
2017-08-14 09:27:42
23513
20
原创 自定义task生成jar包
背景:之前转载过别人的在build.gradle中自定义task来打Jar包的文章文章地址:http://blog.youkuaiyun.com/u010479969/article/details/76096162如果是简单的单一工程需求,这个完全可以满足,但是作为如果想要支撑全公司的业务,这样就有一些麻烦了,如果公司有十个产品线,则需要十个产品线都加入这些代码,感觉还是挺麻烦的所以想要
2017-08-09 18:37:51
1476
转载 Android Studio 使用 Gradle 打包 Jar
转自:http://blog.youkuaiyun.com/congwiny/article/details/50634525稍微调整一下依赖关系//dependsOn 可根据实际需要增加或更改task buildJar(dependsOn: ['assembleRelease'], type: Jar) { appendix = "_v" baseName
2017-07-25 19:52:35
526
原创 kotlin第二讲 与 java对比
简介:上一篇介绍了整体开发环境的搭建和使用,本讲将进行一些kotlin与java的对比分析。正文:首先来看一下,代码书写上的差别:(两个都是默认创建的,并没有改动)package materialdesign.kotlinlearn;import android.content.Intent;import android.support.v7.app.AppCompatAct
2017-05-18 16:52:16
1772
原创 kotlin 入门第一课 开发环境配置
简介:google开了一个大会,第二天感觉就崩溃了,用了五年的java要被替代了,赶紧来学习一下,kotlin到底是个什么鸟,竟然得到了google的重视。正文:第一课,我们从来都是创建开发环境和写自己的第一个程序helloworld,我们也不例外,1.使用在线的开发环境,进行测试学习https://try.kotlinlang.org/#/Examples/Hello,%20
2017-05-18 15:06:52
5802
原创 Volley 源码分析
简介:由于我们工程一历史渊源比较久远,所以最开始用的volley,直到最近我才下定决心,将工程底层库完全替换成okhttp3,这里介绍一下volley的整体策略,来怀念一下。PS:由于我在去年早就已经将底层基础库与上层应用,中间加了一层接口层,隔离,所以替换okhttp3几乎没什么工作量,一直没做一是风险,二是项目进度的原因。正文:首先来看一下这个是我很久之前给我们组分享的时候
2017-05-15 18:08:52
367
原创 Retrofit 源码分析
简介:retrofit一直是我从来没有考虑过使用的一款网络框架,理由是 嫉妒。1.retrofit实际上就是对okhttp3的封装,并没有什么特殊的,或者说是提高性能的技术,只是通过注解的方式,让我们的应用扩展起来更加方便,但是由于我的个人习惯都是自己做一个类似retrofit这一层的接口层,所以在接触到retrofit的时候,第一感觉就是我的活被人抢了,首先说一下,r
2017-05-15 17:07:18
366
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人