linghp / linghp.github.io Goto Github PK
View Code? Open in Web Editor NEWThis project forked from zhaoda/spring
Spring is a blog engine written by GitHub Issues
Home Page: http://zhaoda.net/spring/
License: MIT License
This project forked from zhaoda/spring
Spring is a blog engine written by GitHub Issues
Home Page: http://zhaoda.net/spring/
License: MIT License
比如存储数据,可以用:
observableForGetWeatherFromNetWork = observableForGetWeatherFromNetWork
.doOnNext(new Action1<Weather>() {
@Override
public void call(Weather weather) {
Schedulers.io().createWorker().schedule(() -> {
try {
weatherDao.insertOrUpdateWeather(weather);
} catch (SQLException e) {
throw Exceptions.propagate(e);
}
});
}
});
46877-47c47
2a1a3-4b7e9
a6b86-f426a
83cbd-feb39
d97a6-36468
c3b11-3f5ed
f8ccb-a4d70
61d0e-9d45f
88f2c-fc9c8
05339-5500b
a049b-c933e
09f63-1e710
96d8d-8c5be
a63b8-7a40b
62edc-5c41d
3c1ff-3c477
1.368170387382
2.634023475123
3.337313205011
4.301415101203
5.394707816958
查看当前Activity信息:
1、通过如下命令你可以快速的定位到当前页面所对应的Activity:
adb shell dumpsys activity top
2.jadx- Dex to Java decompiler
String json = "{name:"jason",father:"jason",age:18}";
//name:"jason"
//age:18
//"\w+" 字符串属性
Pattern p = Pattern.compile("\w+:("\w+"|\d*)");
Matcher m = p.matcher(json);
while(m.find()){
String text = m.group();
int dotPos= text.indexOf(":");
String key = text.substring(0, dotPos);
String value = text.substring(dotPos+1, text.length());
//替换字符串的开始结束的双引号
value = value.replaceAll("^\"|\"$", "");
System.out.println(key);
System.out.println(value);
}
private static final JsonAdapter<List<Contributor>> CONTRIBUTORS_JSON_ADAPTER = MOSHI.adapter(
Types.newParameterizedType(List.class, Contributor.class));
ResponseBody body = response.body();
List<Contributor> contributors = CONTRIBUTORS_JSON_ADAPTER.fromJson(body.source());
分析来源https://zhuanlan.zhihu.com/p/24116682
基本原理:注册时通过hashmap保存每个跳转的协议和对应的类,跳转时通过协议名来找对应的类,达到模块化,解耦。
自定义一些注解,自己写注解处理器,注解需要处理的地方,编译时注解处理器会遍历所有代码拿到注解的元素,收集信息,进一步获取类,方法,属性等,然后去拼装类,处理自己要解决的操作。最后提供api供别人调用,这时是通过反射(运行时)实现。
参考http://blog.csdn.net/lmj623565791/article/details/51931859
adb shell pm uninstall --user 0 com.tencent.wecarspeech
adb logcat -v time>D:log.txt
pm path com.tencent.wecarcontrol
am start com.tinnove.wecarspeech/.app.MainActivity
adb shell am force-stop com.tencent.wecarspeech 重启语音进程
adb shell dumpsys package com.tencent.wecarcontrol
adb shell dumpsys package com.mengbo.electronicmanual 查看某个包的具体信息
adb shell pm list packages 列出所有的包名
adb获取当前顶层窗体信息
adb shell dumpsys window | findstr mCurrentFocus
adb push C:\Users\WTCL\Desktop\WT_WeCarControl.apk /system/app/WT_WeCarControl/
WT_WeCarControl.apk
adb shell验证密码取消
adb shell disable-verify 1
adb root 报错:adb shell setenforce 0;adb root;adb remount
查看文件大小 du -h -d 1
adb shell am broadcast -a com.wt.wecarspeech.smartdebugger.excel.Action_Excel -n com.tencent.wecarspeech/com.wt.wecarspeech.smartdebugger.excel.ExcelReceiver
adb shell setenforce 0 解决adbd cannot run as root in selinux enable
adb shell dumpsys package com.tinnove.wecarspeech 查看权限
adb shell ps -A | findstr speech 查看进程
adb shell settings get global TUID
设置logcat缓存
adb logcat -c
adb logcat -g
adb logcat -G 4M
查看文件大小,删除大的文件
du -m
cd Android/data/com.tinnove.wecarspeech/files/tinnove/wecarspeech/wav
rm -rf *
./gradlew :app:dependencies > log.txt
北斗相关公司:北斗星通、海格通信、华测导航、振芯科技、合众思壮、华力创通、中海达。
合肥长鑫是目前国内唯一使用主流制程的DRAM厂商
存储器(DRAM53%,NAND42%,NOR3%)是芯片中占比最大的细分领域,占比高达30%,全球市场规模达到1300亿美元,但是之前我国在存储器领域,几乎一片空白:
DRAM存储器,三星、SK海力士、美光三足鼎立,合计占有95%的市场份额;
NAND存储器,上述三巨头加上东芝、西部数据,五家合计占有97%的市场份额;
NOR存储器,开始出现兆易创新等国内厂商的身影,但是基本依然由国际巨头垄断,尤其是高端领域。
合肥长鑫是目前国内唯一使用主流制程的DRAM厂商,这次的DRAM项目分为三期,总投资月1500亿,产值规模超过2000亿。
与合肥长鑫直接相关的公司:兆易创新、北方华创、通富微电、至纯科技。
其次是A股中有涉及存储器的公司:兆易创新、紫光国微、全志科技、上海贝岭。
【紫光国微】长江存储将在今年年底量产64层堆栈的3D NAND存储器,在明年生产128层堆栈的3D NAND,进入国际一流梯队。长江存储实际控制人是紫光集团,而紫光国微也是紫光集团旗下做芯片、存储器的平台,所以长江存储一直有注入紫光国微的预期。
细心的研粉会发现,近期芯片投产的消息很多,除了上述提到的合肥长鑫、长江存储,还有:
1)广州粤芯半导体项目将于9月投产(这是今天智光电气涨停的原因);
2)华虹半导体无锡项目将于9月投产;
3)中芯南方计划也即将投产。
产线集中投产,卖铲子的芯片生产设备公司将直接受益。
相关公司:北方华创、长川科技等。
对标美国Wintel,国内PK体系联盟主要参与者:
【主导】飞腾、麒麟;(**长城、**软件)
【数据库】达梦、神通、金仓、南大通用;
【中间件】东方通、中创、金蝶;
【信息安全】北信源、启明星辰、天融信;
【软件】金山软件、永中office、搜狗、金蝶ERP、奇虎360;
【下游用户】国家机关、部分大学、中石油、**联通等。
华为产业链公司:
【芯片】兆易创新、长电科技、闻泰科技、圣邦股份、紫光国微;
【光学系统】韦尔股份、欧菲光、联创电子;
【天线、射频】在Mate 30中,天线、射频价值量至少比普通5G手机提高100%,公司有硕贝德、信维通信、卓胜微、立讯精密、电连技术;
【电池、无线充电】欣旺达、德赛电池、圣邦股份;
【主板PCB、FPC】鹏鼎控股、东山精密、景旺电子;
【屏幕及屏幕系统】京东方A、TCL、蓝思科技;
【人脸识别、屏下指纹】汇顶科技。
此次QLED 4K高清大屏是亮点,华为产业链公司有:TCL集团、激智科技、京东方A、万顺新材。
华为的退出使得国内服务器市场格局大变。
国内服务器市场格局是这样的:浪潮信息市场份额27%、华为15%、华三(紫光股份)12%、中科曙光11%、其他35%(包括**长城、澜起科技、高鸿控股等)。
1“买在分歧,卖在一致”,也就意味着在板块大涨之时,宜兑现小部分仓位来实现控仓,从而打低整体持仓成本;
2不断去弱留强,不断通过兑现趋势走弱的仓位来实现控仓,对于高景气赛道,为了避免受大盘影响导致轻易被洗,可以放宽容忍度,板块跌破5日线再彻底清仓。;
3要根据自个可控内的风险偏好,及时处理掉处在盈亏平衡线上的股,来确保本金尽量不被侵蚀(这个提醒永不过时)。
分仓有两大好处:
1、避免踩到黑天鹅的风险:毕竟A股市场波云诡谲,很难说不可能踩到黑天鹅,但是通过分仓操作就旧能够很好规避这个重仓遭受黑天鹅的巨大悲痛。
2、“分仓”和“去弱留强”,是一个完整的交易体系,通过斩断掉队的股,卸掉部分仓位,就能从容坦然地享受板块后面的涨幅,这就是“仓位管理三原则”中的第二原则。
关于风控,今天再补充一下,可以定个总纲领——忽略-5%之内的波动,但是每个人可以根据自个的风险偏好来调节具体是-2%还是-5%,这样就能避免逻辑品种偶或挖黄金坑洗人的不可控因素。
严正强调一下,大伙把下面这句话打印出来并贴在电脑上:大跌之后开启的周期才是是庄稼人战法的精准适用场景,在此情景中大伙可以大仓位参与,除此之外都不是标准的庄稼人战法,大伙小仓位博弈,保持手感即可。
打开edge浏览器,输入read:+网址,进入阅读模式。
数值(number):整数和小数(比如1和3.14)。
字符串(string):文本(比如Hello World)。
布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)。
undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。
null:表示空值,即此处的值为空。
对象(object):各种值组成的集合。
对象是最复杂的数据类型,又可以分成三个子类型。
狭义的对象(object)
数组(array)
函数(function)
function myIsNaN(value) {
return value !== value;
}
document.querySelectorAll("code").forEach(function(item) {
item.style = item.style + ";user-select: text !important;";
return item;
})
当你点击一个页面中一个链接时会经过shouldOverrideUrlLoading。return true时,你可以自己来处理这个url,webview则不再处理这个url;return false时,webview来处理这个url。
通俗的说,当返回true时,你点任何链接都是失效的,需要你自己跳转。return false时webview会自己跳转。
private Uri createImageUri() {
String status = Environment.getExternalStorageState();
// 判断是否有SD卡,优先使用SD卡存储,当没有SD卡时使用手机存储
if (status.equals(Environment.MEDIA_MOUNTED)) {
return getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());
} else {
return getContentResolver().insert(MediaStore.Images.Media.INTERNAL_CONTENT_URI, new ContentValues());
}
}
当我们点击页面中的一个link时,先调用shouldOverrideUrlLoading再调用onPageStarted。
当我们通过loadUrl的方式加载一个页面时,先调用onPageStarted再调用shouldOverrideUrlLoading。
不过shouldOverrideUrlLoading不一定每次都被调用,只有需要的时候才会被调用。
比如,一开始页面加载时(没有重定向)不调用,reload不调用,返回上一页面不调用。
1.使用Chrome 浏览器调试移动端网页 chrome://inspect/#devices
git reset HEAD .
git commit --amend --author="name [email protected]"
git remote add update_stream https://github.com/_original/_project.git
git fetch update_stream
git merge update_stream/master
git push origin master
如果需要给update_stream发送Pull Request
打开 https://github.com/_your/_project.git
点击Pull Request -> 点击New Pull Request -> 输入Title和功能说明 -> 点击Send pull request
git rm --cached 。这个命令会直接从暂存区删除文件,工作区则不做出改变。
git rm -r --cached 文件或文件夹路径
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
可以借助 git commit --amend 修改Git已经提交的日志。
在 Bash 下 输入 git commit --amend ,按回车键,进入文本编辑界面,输入小写i,进入编辑模式。使用键盘上下左右键移动光标到日志所在的目标位置,然后进行修改。
按Esc键直接退出编辑模式,输入:wq,按回车键,表示改动保存并退出;输入:q!,按回车键,表示强制退出,所有改动不保存。
不更改commit内容可以用 git commit --amend --no-edit
git remote set-url origin https://[email protected]/linghp/RangeSeekBar.git/
然后发布release版本,打开jitpack:https://jitpack.io/ 复制仓库地址 get it
更新git下载文件大小git config --global http.postBuffer 1048576000
让你的工作目录完全回退到最近一次commit的时候
git reset --hard
git clean -f
标识储藏记录
git stash save 'message'
git stash apply --index 1
//clone某一个分支的最新一笔记录,这样仓库文件会小很多
git clone --depth=1 https://github.com/user/repo.git --branch my-branch --single-branch
项目中使用了versionMajor,versionMinor,versionPatch,versionBuild(即:主版本号,次版本号,bug修复号,编译号)组成,每次提交测试时,versionBuild增1。
git commit -a -m "Bumped version number to 1.2.0"
git merge --no-ff release-1.2.0 -m "Merge branch 'release-1.2.0' into master"
git push origin master
git tag -a 1.2.0 -m "v1.2.0"
git push origin 1.2.0
git merge --no-ff release-1.2.0 -m "Merge branch 'release-1.2.0' into develop"
git push origin develop
git branch -d release-1.2.0
gradle assembleProductionRelease
为下一个开发版本做准备
app上线之后,若遇到紧急bug需要修复上线,则采用hotfix分支方式来进行版本发布。
git commit -a -m "Bumped version number to 1.2.1"
git merge --no-ff hotfix-1.2.1 -m "Merge branch 'hotfix-1.2.1' into master"
git push origin master
git tag -a 1.2.1 -m "v1.2.1"
git push origin 1.2.1
git merge --no-ff hotfix-1.2.1 -m "Merge branch 'hotfix-1.2.1' into develop"
git push origin develop
git branch -d hotfix-1.2.1
gradle assembleProductionRelease
app上线之后遇到重大bug时,需要回滚至前一个版本。
declare module "react-native" {
export interface NativeModulesStatic {
NativeToast: NativeToast;}
使用:
import { NativeModules } from "react-native";
const NativeDevice = NativeModules.NativeDevice;
目前所有的事件是针对ACTION_DOWN的,对于ACTION_MOVE和ACTION_UP我们最后做分析:
ACTION_MOVE和ACTION_UP在传递的过程中并不是和ACTION_DOWN 一样,你在执行ACTION_DOWN的时候返回了false,后面一系列其它的action就不会再得到执行了。简单的说,就是当dispatchTouchEvent在进行事件分发的时候,只有前一个事件(如ACTION_DOWN)返回true,才会收到ACTION_MOVE和ACTION_UP的事件
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/public_16_dp"
android:insetRight="@dimen/public_16_dp">
<shape android:shape="line">
<stroke
android:width="1dp"
android:color="#F5F5F5"
android:dashWidth="9dp"
android:dashGap="3dp" />
<size android:height="2dp"/>
</shape>
</inset>
body.source().readUtf8()
当用到databinding的时候,实体类集成BaseObservable,实体类不混淆,databinding混淆了,这是就会报这个错误,APP崩掉。
重启
代理未清除,打开账户下的~/.gradle/gradle.properties,删除代理,解决地址
在build.gradle中的android{}添加如下脚本就可以顺利编译了 ,
dexOptions {
javaMaxHeapSize "4g"
}
通过as直接在手机上运行的apk考出在其他低版本手机上安装打开闪退:
高版本的设备运行出的apk安装在Android L以下的设备上会报错;
低版本的设备运行出的apk安装在高版本设备上正常。
解决:通过gradle命令打包或者工具栏build apk 参考
可以用transitive = false 的方式来关闭依赖传递特性,也可以采用添加@jar的方式忽略该依赖的所有传递性依赖。
排除依赖,exclude可以接收group和module两个参数。
使用强制版本force = true。
compile('org.hibernate:hibernate:3.1') {
// 冲突时优先使用该版本
force = true
// 依据构建名称排除
exclude module: 'cglib'
// 依据组织名称排除
exclude group: 'org.jmock'
// 依据组织名称+构件名称排除
exclude group: 'org.unwanted', module: 'iAmBuggy'
// 为本依赖关闭依赖传递特性
transitive = false
}
./gradlew :app:dependencies --configuration debugCompileClasspath
webstorm:http://xidea.online
yarn start —- --reset-cache — for when you installed something and it does not work/can’t be found.
https://medium.com/engineering-housing/how-we-built-our-react-native-app-3380a33811ac
keytool -list -printcert -jarfile your_apk_file
输出信息:
签名Owner,Issuer等信息
签名的fingerprints,如md5及sha1等值
签名有效期等信息
keytool -list -v -keystore your_kestore_file
注意,上述命令执行后,会提示输入密码,其实输入错误也没有关系,不影响结果。
1.adb shell dumpsys activity activities 获取当前运行的Activity
用ide生成的代码要改成
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(ordinal());
}
apply方法是异步的,在还没保存成功,程序杀死了,造成数据丢失。
1.通过adb命令
获取所需软件包的APK文件的完整路径名称。
adb shell pm path com.example.someapp
这将输出为:package:/data/app/com.example.someapp-2.apk。
将APK文件从Android设备提取出来。
adb pull /data/app/com.example.someapp-2.apk
2.Google Play商店中有一个名为"Apk extracter"的应用程序。通过这个应用程序,你可以得到安装应用程序的.apk文件。
首先会查找是否存在和被启动的Activity具有相同的亲和性的任务栈(即taskAffinity,注意同一个应用程序中的activity的亲和性相同),如果有,则直接把这个栈整体移动到前台,并保持栈中旧activity的顺序不变,然后被启动的Activity会被压入栈,如果没有,则新建一个栈来存放被启动的activity,注意,默认情况下同一个应用中的所有Activity拥有相同的关系(taskAffinity).
FLAG_ACTIVITY_NEW_TASK要配合taskAffinity使用,否则会重复压入栈,一般用singleTask,在Activity上下文之外启动Activity需要给Intent设置FLAG_ACTIVITY_NEW_TASK标志,不然会报异常
adb shell cat /proc/cpuinfo
日志过滤start u0
message:"start u0"
1.activity回收之后还原:(1)onActivityResult() -> onStart() -> onResume()
(2) onCreate->onStart->onRestoreInstanceState->onPostCreate-onResume
在线观看:
1231d电影:https://www.1231d.com/
素白白影视:https://www.subaibai.com/
低端影视: https://ddrk.me/
阿房影视: https://bwl87.com/
奈菲影视: https://www.nfmovies.com/
下载类:
片库: https://www.pianku.li/
片源网: https://pianyuanw.com/
高清电台: https://gaoqing.fm/
BT吧: https://www.ibtba.cc/
chaospace:https://www.chaospace.fun/
影视聚合:
影视森林:http://www.549.tv/
https://www.333dav.com/guochanzipai/91601/index_1_1.html
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.