- 我不懂运营
-
根据mapping.txt还原混淆的代码
BEFORE
Here"s the stack trace as obfuscated by ProGuard:
Caused by: java.lang.NullPointerException
at net.simplyadvanced.ltediscovery.be.u(Unknown Source)
at net.simplyadvanced.ltediscovery.at.v(Unknown Source)
at net.simplyadvanced.ltediscovery.at.d(Unknown Source)
at net.simplyadvanced.ltediscovery.av.onReceive(Unknown Source)
AFTER
All you need to do is write one line in the command prompt, and the obfuscation will be removed, as you can see here:
Caused by: java.lang.NullPointerException
at net.simplyadvanced.ltediscovery.UtilTelephony.boolean is800MhzNetwork()(Unknown Source)
at net.simplyadvanced.ltediscovery.ServiceDetectLte.void checkAndAlertUserIf800MhzConnected()(Unknown Source)
at net.simplyadvanced.ltediscovery.ServiceDetectLte.void startLocalBroadcastReceiver()(Unknown Source)
at net.simplyadvanced.ltediscovery.ServiceDetectLte$2.void onReceive(android.content.Context,android.content.Intent)(Unknown Source)
HOW TO DECODE STACK TRACE
You can choose either the command line method or GUI (Graphical User Interface) method.
HOW TO DECODE STACK TRACE VIA GUI
1) Open <android-sdk>/tools/proguard/bin/proguardgui.bat
2) Select the “ReTrace” option on the left column.
3) Add your mapping file and obfuscated stack trace.
4) Click “ReTrace!”
Thanks to David Bilik for mentioning this GUI method.
HOW TO DECODE STACK TRACE VIA COMMAND LINE
1) You will need your ProGuard"s mapping.txt file and the stack trace (Ex: stacktrace.txt) that you want to de-obfuscate.
2) The easiest way to do the next step is copy both these files into your<android_sdk_root>/tools/proguard/bin.
3) If you are on Windows, run the following command in the same directory as the files (make sure you change to your own file names):
retrace.bat -verbose mapping.txt stacktrace.txt > out.txt
4) out.txt will have the stack trace de-obfuscated. Now you can debug much easier and faster than before.
php代码混淆_obfuscate怎么还原
这代码也没啥区别呀,不是一样看得懂吗?这有什么问题吗??在我看来感觉还是一样的,只是变量名乱了些长了些而已, 你将相关变量名对应重新命一下名不就全出来了吗??2023-07-19 18:10:391
php正则表达式过滤某些HTML标签代码
php 有自带函数strip_tags2023-07-19 18:11:075
这个PHP的加密代码怎样破解,这个是什么原码来的?
最好把原网页地址发过来,这样容易看出加密方法2023-07-19 18:12:113
php文件被加密怎么破解
可以用黑刀Dezender来试试,我不担保可以解出来的哦,从黑刀Dezender4.3版之后,将着力对混淆函数以及自定义函数的解密进行应对。大家下载压缩包并解压后,会发现有一个“config.ini”的文件,这就是混淆函数库啦!打开后,可自行编辑其中的内容,当然,也可以通过黑刀Dezender的升级程序直接下载官方最新的混淆函数库文件。这个混淆函数库就相当于是一个字典文件了,在保证格式不变的情况下,大家可以在【黑刀部落】下载《黑刀超级字典生成器》生成字典来挂入主程序进行解密,正确步骤为:先备份、改名自己的config.ini文件,生成的字典文件在第一行加入“[OBFUSCATE_NAME]”,将字典文件改名为config.ini,开始解密。同时,黑刀部落网站的“项目中心”栏目也开设了用户提交自己已知程序被混淆的函数列表,这样的话,就能让Dezender变得越来越强了。再也不怕混淆函数了。呵呵。什么是混淆函数?混淆函数,是从Zend Guard 4.0之后新增的一项功能,能把PHP文件中的所有函数名都进行混淆,混淆后变成以“_OBFUSCATE_”开头的一串“乱码”,这种加密方式感觉有点类似Md5,因为函数名已经不是原来的样子了,所以解密出来的PHP文件是不能正常执行的。黑刀Dezender在4.3版之后,新增加了挂入混淆函数库参与解密的功能,而混淆函数库,就像是一个包含了已知函数名的字典,利用这个字典,来与被混淆了的函数名(就是所谓的“乱码”)进行比对,如果比对结果相同,则解密出来的文件,基本上就可以恢复到加密前的样子了。如果混淆函数库中没有包含该PHP文件中使用的函数名,那么解密结果依然还是会存在“乱码”的。掌握了这个原理,我们就可以去想办法解决问题了。方式有以下几种:第一,使用黑刀超级字典生成器产生一个字典,字典的内容可以自己把握,修改字典文件名为“config.ini”,然后打开字典文件,在第一行插入“[OBFUSCATE_NAME]”标记(注意,方括号也是需要的,也就是引号内的内容都要加进去),将字典文件拷贝入黑刀Dezender主程序所在目录,同时注意备份原有的config.ini文件。这种办法费时费力,也要看运气,不过却是最实际的解决办法。第二,常看别人源代码的朋友,可以把自己已经掌握了的混淆函数的真实函数名提交到我的网站上来。操作步骤:进入网站首页,进入项目中心的“DeZender混淆函数库更新表”,提交。我会定期查看大家提交上来的数据,加入到官方的混淆函数库中,不断的增强和完善官方混淆函数库,大家可以利用黑刀Dezender的自动升级功能对其进行升级!2023-07-19 18:12:181
config.ini文件怎么解密
自解密文件和标准加密有什么区别? 可以用黑刀Dezender来试试,我不担保大家下载压缩包并解压后,会发现有一个“config.ini”的文件,这就是混淆2023-07-19 18:12:292
英语单词关于迷惑
addle v.使昏乱;使腐坏 (addled adj.头脑混乱的) baffle v.使困惑,难倒 (baffling adj.令人困惑的) befuddle v.使迷惑,使为难;使酒醉昏迷 befuddlement n.迷惑不解 bemused adj.茫然的,困惑的 bewilder v.迷惑,混乱 bewildering adj.令人迷惑的,费解的 captivate v.迷惑,吸引 (captivation n.吸引力,魅力) confound v.使迷惑,搞混 daze v.使茫然,使眩晕 delirious adj.精神错乱的 delirium n.精神错乱 deranged adj.精神错乱的,有精神病的 derangement n.精神错乱 discombobulate v.使困惑,扰乱 discombobulated adj.扰乱的,打乱的 discomfited adj.困惑的,尴尬的 elude v.搞不清;逃避 enthrall v.迷惑,迷住 fascinate v.迷惑,迷住 illusive adj.迷惑人的,迷幻的 muddle n.迷惑,混乱 nonplus v.使窘困迷惑;n.迷惑,窘境 (nonplussed adj.窘困迷惑的) obfuscate v.使困惑,使迷惑 (obfuscation n.昏迷,困惑) obsess v.使…困窘,使…烦扰;迷住 quandary n.困惑,进退两难 stupefy v.(使)茫然,吓呆 (stupid adj.愚笨的)2023-07-19 18:12:371
lua 怎么反编译
lua源文件--obfuscate-->lua源文件(混淆后)--compile-->luac文件(带调试用的变量名和行号)--strip-->luac文件(不带调试信息)lua/luac--加密/打包-->数据文件数据文件--解包/解密-->lua/luac-->lua虚拟机1. 跟踪,脱壳,解包,解密,获得 luac追 luaL_loadbuffer luaL_loadfile lua_load 应该可以找到 解密函数。hook 这3个函数,导出解密后的数据,直接就是 luac 文件。如果没编译甚至是 lua源文件。hook luaV_execute 可以拿到 Proto* ,想办法用 luaU_dump 导出。luaD_precall 应该没必要搞。2. 非标准 luac 处理我们有两种方案来处理得到的 luac1. 得到一个能够执行上述非标 luac 的 lua 版本搞清楚编译方式,改 lua 源文件,编译出一个,这样做什么都可以,还能编译出对应的 luadec 。如果能找到 lua51.dll 之类的就直接调用吧。但是,只能用于导出 luac 对比文件格式,或者执行找到的几个关键函数。2. 将非标 luac 转换成标准格式 luac,正所谓:山不来就我,我便去就山非标准 luac 是怎么做的:1. bad header 改文件头#define LUA_SIGNATURE "33Lua" // lua.h2. bad header 改数据类型// luaconf.h#define LUA_NUMBER_DOUBLE#define LUA_NUMBER doubleLUA_NUMBER to floatLUA_NUMBER_SCAN to "%f"LUA_NUMBER_FMT to "%.7g"l_mathop(x) to (x##f)lua_str2number to use strtof3. bad code OpCode 重定义// 改有 "ORDER OP" 的地方/* grep "ORDER OP" if you change these enums */enum OpCode; // lopcodes.hconst lu_byte luaP_opmodes[]; // lopcodes.cconst char *const luaP_opnames[]; // lopcodes.c2023-07-19 18:12:461
加密的php文件怎么解密
只是用了一些特殊符号作为array的key和function的参数罢了,没啥好研究的,可以直接把这些特殊符号替换成英文就好了2023-07-19 18:13:092
以o开头的单词有哪些?
obeisance n. 鞠躬;敬礼; obelisk n. 方尖石塔;短剑号;疑问记号; obese adj. 极肥胖的; obesity n. 肥胖; obey vt.顺从 vi.服从 扩展资料 obfuscate v. 使困惑;使迷惑; obigor n.债务人;欠债者; obituary a. 死亡的; object n.物;物体;目的"; objection n.反对;异议;不喜欢; objectionable adj. 令人厌恶的; objective a.客观的;无偏见的; objurgate v. 怒斥;谴责; objurgation n. 叱责;非难; oblation n. 宗教的供品;祭品2023-07-19 18:13:191
非公开的加密算法比公开的加密算法安全么?
Kerckhoffs原则:秘密寓于密钥。换句话说,一个密码系统的安全性,应该仅仅依靠“密钥没有泄漏”这个前提。即使整个系统落到了敌人的手上,敌人了解了整个系统的所有细节,但如果敌人不知道密钥,你的传输还是安全的。满足这样严苛的条件的密码系统才是安全的。无论是在战争还是和平时期,你不能把保密的希望寄于你的系统/算法的秘密性。机械的可以拆解,软件的可以直接看汇编。你的密码系统的所有细节总会被有心人所一一拆解。这个时候,如果你的系统符合Kerckhoffs原则,那么即使敌人拆解了你的系统但不知道密钥,他也没有办法破译加密的信息。而在这点上,非公开和公开算法的区别就体现出来了:因为系统总会被别人知道,所以安全性就寓于算法是否符合Kerckhoffs原则。公开算法受全世界的密码学者研究,经受了很大的考验,有很多弱的算法就舍弃掉了,应用的时候对于算法的局限性了解得比较多,用起来可以更留心(用更长的密钥之类);非公开算法的话,因为除了作者之外别人都不知道,所以基本上没有人看过,加密的强度谁都不知道,可能有很好的攻击但是作者没发现所以以为很安全,但实际上一攻就破。这种非公开算法被破解的例子是很多的,不过我知道的都是中古的……比如说一个报纸有个公告栏,有些情侣会用自己的密码在上面调情,有一次一对情侣用自创密码讨论私奔的事情,然后好事的密码分析师花了点时间破解了,然后用这个密码体系发了一段加密信息,劝他们不要私奔……二战的话,Enigma密码机本来也想秘密化的,不过怎奈何间谍们啊……但现在的密码学不仅仅是加密信息,还有身份认证啊数字签名啊之类的。这些可以通过基本的密码学primitive再加上semantic security来做,具体可以查维基。这些东西的话,用自己的一套方法基本上就是死路一条……因为从系统的角度出发,自己设计的系统很难堵住每一个漏洞,而设计出来了的话也大概跟sematic security的系统差不多……你同学的想法有个学名,叫security through obscurity。实际上这个也不是不能用,但是不能将整个系统的关键凭托在非公开的系统上面。不过要是将AES啊RSA啊之类的算法很好地obfuscate,然后装成很无辜的数学计算模块,同时伪装另一套实际上不会用到的加密系统,假装整个系统都依赖于它,这种也构成很好的obscurity式防御。不过,这种防御也只能是一层外壳,整个系统实质上也应该依赖于AES或者RSA之类好算法的安全性。这样的话,即使伪装被去除,敌人也对AES或者RSA束手无策。2023-07-19 18:13:291
打包混淆时出错,怎么搞都不行
ProGuard来进行混淆打包,大大的优化Apk包的大小。但是注意ProGuard对文件路径的名名很有讲究,不支持括号,也不支持空格。在混淆过后,可以在工程目录的proguard中的mapping.txt看到混淆后的类名,方法名,变量名和混淆前的类名,方法名,变量名。 在使用Eclipse新建一个工程,都会在工程目录下生产配置project.properties和proguard-project.tx。 # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-10 project.properties用于配置Android工程的一些属性,#号的话表示当前行是注释,这里的proguard.config就用于指定ProGuard的混淆配置文件,并对使用release方式打包应用程序时开启代码混淆功能。对于是否是使用release方式打包,和AndroidManifest.xml中application的android:debuggable属性有很多关系。如果该值为android:debuggable="true",那么最终就是debug方式打包。最明智的方式就是在AndroidManifest.xml并不显示的指定它,而是是打包工具在打包时来决定它最终的值。对于ant就是ant release或ant debug。而对于直接在Eclipse中使用run 或debgu来打包的话就是debug,使用export的话就是release. proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 这里的话指定了混淆的基本配置文件proguard-android.txt,和混淆的个性化配置文件proguard-project.txt。2023-07-19 18:13:481
O开头的所有动词
自己查字典你 几年级?难道纸制的字典都没有?2023-07-19 18:14:154
boost::bind是做什么的?为什么要使用它?
比如:这个是我写的:找出大于3小于6且能被2整除的数:#include <iostream>#include <functional>#include <algorithm>#include <boost/bind.hpp>using namespace std;using boost::bind;int main(){ int a[] = {0,1,2,3,4,5,6,7,8,9}; int* p = find_if(a, a+10, bind(logical_and<bool>(), bind(logical_and<bool>(), bind(greater<int>(), _1, 3), bind(less<int>(), _1, 6)), bind(logical_not<bool>(), bind(modulus<int>(), _1, 2)))); cout << *p;}以下为参考资料:#include <iostream>#include "boost/bind.hpp"void nine_arguments( int i1,int i2,int i3,int i4, int i5,int i6,int i7,int i8, int i9) { std::cout << i1 << i2 << i3 << i4 << i5 << i6 << i7 << i8 << i9 << " ";}int main() { int i1=1,i2=2,i3=3,i4=4,i5=5,i6=6,i7=7,i8=8,i9=9; (boost::bind(&nine_arguments,_9,_2,_1,_6,_3,_8,_4,_5,_7)) (i1,i2,i3,i4,i5,i6,i7,i8,i9);}又比如:#include <iostream>#include <string>#include <map>#include <algorithm>#include "boost/lambda/lambda.hpp"#include "boost/lambda/bind.hpp"int main() { using namespace boost::lambda; typedef std::map<int,std::string> type; type keys_and_values; keys_and_values[3]="Less than pi"; keys_and_values[42]="You tell me"; keys_and_values[0]="Nothing, if you ask me"; std::cout << "What"s wrong with the following expression? "; std::for_each( keys_and_values.begin(), keys_and_values.end(), std::cout << "key=" << bind(&type::value_type::first,_1) << ", value=" << bind(&type::value_type::second,_1) << " "); std::cout << " ...and why does this work as expected? "; std::for_each( keys_and_values.begin(), keys_and_values.end(), std::cout << constant("key=") << bind(&type::value_type::first,_1) << ", value=" << bind(&type::value_type::second,_1) << " "); std::cout << " "; // Print the size and max_size of the container (std::cout << "keys_and_values.size()=" << bind(&type::size,_1) << " keys_and_values.max_size()=" << bind(&type::max_size,_1))(keys_and_values);}How Does the Bind Library Improve Your Programs?Adapts functions and function objects for use with Standard Library algorithmsConsistent syntax for creating bindersPowerful functional compositionWhen using the algorithms from the Standard Library, you often need to supply them with a function or a function object. This is an excellent way of customizing the behavior of algorithms, but you often end up writing new function objects because you don"t have the tools necessary for functional composition and adaptation of argument order or arity. Although the Standard Library does offer some productive tools, such as bind1st and bind2nd, this is rarely enough. Even when the functionality suffices, that often implies suffering from awkward syntax that obfuscates the code for programmers who are not familiar with those tools. What you need, then, is a solution that both adds functionality and normalizes the syntax for creating function objects on-the-fly, and this is what Boost.Bind does.In effect, a generalized binder is a sort of lambda expression, because through functional composition we can more or less construct local, unnamed functions at the call site. There are many cases where this is desirable, because it serves three purposesreducing the amount of code, making the code easier to understand, and localizing behavior, which in turn implies more effective maintenance. Note that there is another Boost library, Boost.Lambda, which takes these properties even further. Boost.Lambda is covered in the next chapter. Why shouldn"t you just skip ahead to that library? Because most of the time, Boost.Bind does everything you need when it comes to binding, and the learning curve isn"t as steep.One of the keys to the success of Bind is the uniform syntax for creating function objects and the few requirements on types that are to be used with the library. The design takes focus away from how to write the code that works with your types, and sets it to where we are all most interestedhow the code works and what it actually does. When using adaptors from the Standard Library, such as ptr_fun and mem_fun_ref, code quickly becomes unnecessarily verbose because we have to provide these adaptors in order for the arguments to adhere to the requirements of the algorithms. This is not the case with Boost.Bind, which uses a much more sophisticated deduction system, and a straightforward syntax when the automatic deduction cannot be applied. The net effect of using Bind is that you"ll write less code that is easier to understand.How Does Bind Fit with the Standard Library?Conceptually, Bind is a generalization of the existing Standard Library functions bind1st and bind2nd, with additional functionality that allows for more sophisticated functional composition. It also alleviates the need to use adaptors for pointers to functions and pointers to class members, which saves coding and potential errors. Boost.Bind also covers some of the popular extensions to the C++ Standard Library, such as the SGI extensions compose1 and compose2, and also the select1st and select2nd functions. So, Bind does fit with the Standard Library, and it does so very well indeed. The need for such functionality is acknowledged, and at last in part addressed by the Standard Library, and also in popular extensions to the STL. Boost.Bind has been accepted for the upcoming Library Technical Report.2023-07-19 18:14:321
英语Changes will remain in memory only怎么翻译?
变化只是个记忆罢了。2023-07-19 18:14:4112
goagentx 用不了,出现以下内容是为什么?
socket.error: [Errno 48] Address already in use这个就是错误的原因,通信的端口已经被占用了。你之前应该是开过一次goagent了吧,并且没有关掉。看文件路径应该是Mac下吧,你可以打开终端,敲ps回车看一下:是不是也有中间那个有Python的那一行。不出意外的话应该是有的,说明你的goagent已经开了,你可以kill掉这个进程,然后就可以重开了。2023-07-19 18:15:031
unity iap 可以直接在unity调试吗
不能直接在Unity中调试,因为最终调试环节必须是需要靠真机的。所以建议在模拟器中调试无误后,在进行真机调试2023-07-19 18:15:191
android 应用依赖某个库怎么封装成sdk
方法一 使用eclipse导出jar包:我们知道一个java项目是可以用eclipse导出jar包的,安卓工程也一样,只要按普通的方法export就可以了。不过,export出来的包是没有混淆过的,如果你要混淆,还需要单独对你的jar包执行一次proguard程序,可参考proguard使用指南。 方法二 使用脚本打包:我个人比较喜欢该方法,因为android工程项目并不是只有JAVA代码,有的资源也需要提供出来,而使脚本可以更加定制化一些。 android的SDK默认提供了一个ant打包的脚本,具体使用方法,可参考之前的BLOG,使用ant打包APK及依赖包最佳解决办法 我们可以看出,打包,最终调用的其实是android sdk下的ant脚本,既然安卓已经帮我们写好了ant脚本,我们就好好利用。 使用上面的BLOG中介绍的方法,先在工程目录中生成你的build.xml,然后自己写一个target <target name="sdk" depends="-set-release-mode, -release-obfuscation-check, -compile, -post-compile, -obfuscate"> </target> 这段target代码,就是只执行到了混淆的脚本。然后我们在build.xml中选择右键,run as, 第二个ant Build,然后选择要执行的target为我们加上的sdk。 等执行完成后,就会在project/bin/proguard/obfuscated.jar找到你所要的jar包。2023-07-19 18:16:251
哪些英语单词中的“a”读[e]的音
appleegg2023-07-19 18:16:364
打包混淆时出错,怎么搞都不行
ProGuard来进行混淆打包,大大的优化Apk包的大小。但是注意ProGuard对文件路径的名名很有讲究,不支持括号,也不支持空格。在混淆过后,可以在工程目录的proguard中的mapping.txt看到混淆后的类名,方法名,变量名和混淆前的类名,方法名,变量名。 在使用Eclipse新建一个工程,都会在工程目录下生产配置project.properties和proguard-project.tx。 # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-10 project.properties用于配置Android工程的一些属性,#号的话表示当前行是注释,这里的proguard.config就用于指定ProGuard的混淆配置文件,并对使用release方式打包应用程序时开启代码混淆功能。对于是否是使用release方式打包,和AndroidManifest.xml中application的android:debuggable属性有很多关系。如果该值为android:debuggable="true",那么最终就是debug方式打包。最明智的方式就是在AndroidManifest.xml并不显示的指定它,而是是打包工具在打包时来决定它最终的值。对于ant就是ant release或ant debug。而对于直接在Eclipse中使用run 或debgu来打包的话就是debug,使用export的话就是release. proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 这里的话指定了混淆的基本配置文件proguard-android.txt,和混淆的个性化配置文件proguard-project.txt。2023-07-19 18:16:421
U3D如何做代码混淆
提供几个代码混淆方案:1.Unity官方提供代码混淆服务,收费的2.CodeGuard.unitypackage插件,出包是混淆,方便,提供多种混淆选择,灵活,插件有破解版,测试可行,个人比较推荐.3.Crypto Obfuscator for .Net,但是不支持Mac2023-07-19 18:17:082
eclipse打开几个安卓工程时提示的错误(如图),怎么解决,万分感谢。
adb update server2023-07-19 18:17:153
如何混淆代码和相关配置
项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包。 使用步骤: 1、修改project.properties文件: Java代码 收藏代码# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): # proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 去掉proguard.config一行前面的#注释; 2、配置proguard-project.txt文件: 这个是主配置文件,里面配置哪些需要混淆,哪些不需要混淆的选项; 提供给外部的类、方法、变量等名字不能混淆; 在AndroidManifest中配置的类(Activity、Service等的子类及Framework类默认不会进行混淆) 不混淆Parcelable的子类,防止android.os.BadParcelableException Jni中调用的类 反射用到的类 项目中的实体类 3、导出项目: export签名项目。 4、查看是否混淆成功: 用反编译工具反编译并对比未混淆的代码; 5、运行ProGuard及其生成的文件介绍 在以release模式下打包apk时会自动运行ProGuard,这里的release模式指的是通过ant release命令或eclipse project->android tools->export signed(unsigned) application package生成apk。在debug模式下为了更快调试并不会调用proguard。 如果是ant命令打包apk,proguard信息文件会保存于<project_root>/bin/proguard文件夹内;如果用eclipse export命令打包,会在<project_root>/proguard文件夹内。其中包含以下文件: mapping.txt表示混淆前后代码的对照表,这个文件非常重要。如果你的代码混淆后会产生bug的话,log提示中是混淆后的代码,希望定位到源代码的话就可以根据mapping.txt反推。 dump.txt描述apk内所有class文件的内部结构 seeds.txt列出了没有被混淆的类和成员 usage.txt列出了源代码中被删除在apk中不存在的代码目前市面上有很多第三方应用加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去加固测试下。2023-07-19 18:17:221
freedom to operate opinion求翻译
自由表达观点。2023-07-19 18:17:386
拜托那位英语高手帮我翻译下啊 ~急用 别用翻译软件啊!
3.5如何文件明智 生命太短,写crap ,没有人会读;如果你写crap ,没有人 会阅读它。因此,有点好文件是最好的。管理者往往 不明白这一点,因为即使是坏的文件,让他们有一个虚假的安全感 安全,他们不依赖于他们的程序员。如果有人 绝对坚持认为你写真正无用的文件,说是“和 悄悄地开始寻觅工作做得更好。 没有什么能比得上作为有效的把准确估计有关 大量的时间将会采取何种措施产生良好的文件成为一个估计 放松的需求文档。事实是,冷战和努力:文件, 想测试,可以采取许多倍的时间比发展中国家的代码。 17 良好的书面文件, _rst所有,良好的写作。我建议你 _nd书籍,写作,研究,和实践。不过,即使你是一个糟糕的 作家或有穷人的指挥语言,在其中你必须的文件, 金科玉律是所有你真的需要: 己所不欲,正如你将有 他们己所不欲,你“需要一段时间真的觉得谁在将读您的 文件,他们所需要的失控,以及您如何可以教导,以 他们。如果你这样做,你将是一个高于平均水平的文件作家,和 一个很好的程序员。 当谈到,其实记录代码本身,作为反对生产 文件指出,其实是可以阅读的非程序员,最好的程序员 我从未已知举行一个普遍的感受:写自我解释性代码 只有文件的代码的地方,你不能作出澄清,以书面 代码本身。有两个很好的理由。第一,谁需要 看到代码级别的文件将在大多数情况下,能够和喜欢阅读 代码无论如何。诚然,这似乎更容易向有经验的程序员 比对初学者。更重要的,但是该守则和 文件不能不一致的,如果没有文件。来源 代码可以在最坏的错误的和混乱。文件,如果不写 完美,可以说谎,这是一个几千倍更糟。 这并不使其更易于对负责的程序员。请问1 写自我解释性代码?这代表了什么,甚至什么意思?这意味着: _写代码知道会有人要读它; _应用的金科玉律; _使用什么规则,良好的写作,你可能有教训; _选择的解决办法很简单,即使您可以得到与 另一种解决办法更快; _ sacri_cing小优化,模糊码; _思考的读者和消费您的一些宝贵的时间 使其更易于对她的; _不要使用函数名称一样, 富“ , 网吧” ,或经济部“ !2023-07-19 18:18:072
代码混淆 proguard怎么写
具体混淆的步骤简单。首先,我们需要在工程描述文件project.properties中,添加一句话,启用ProGuard。如下所示:[java] view plain copy# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-19 这样,Proguard就可以使用了。当我们正常通过Android Tools导出Application Package时(或者使用ant执行release打包),Proguard就会自动启用,优化混淆你的代码。导出成功后,你可以反编译看看混淆的效果。一些类名、方法名和变量名等,都变成了一些无意义的字母或者数字,证明混淆成功2023-07-19 18:18:141
php报错:Undefined variable和 No database selected 数据库 不存在,哪个高手帮忙解释下
一楼的 XXXX 1046是行数?一点一点检查 exit2023-07-19 18:18:213
这一段怎么翻译?金融的!帮帮忙(请不要用机器翻译)
识别和分析复杂的金融监管机构的目标并不是一件易事。在金融监管发展的上个10至20年里,它被号召奉行的政策目标越来越广泛,而这些政策目标又并不一定存在于每条商业主线或者是相涉及的国家,而它们也并不总是相容一致的。一个平常的目标概述不应该混淆它们之间的相互依赖和相互作用,也不应模糊它们之间可能存在的冲突。如同总体政策目标一样,人们可以识别金融体系的整体稳定性,以及旨在建立对金融体系能够运作或存活的公众信心的核心元素。虽然这其中有很多中间目标---尤其是关系到诸如机构偿付能力,或者存款人、投资方或投保人的利益保障---但是,其最终目标仍在于确保作为核心的“公共利益”的金融稳定。正如金融危机反复证明的那样,这种公共利益显然并不能由市场独力承担,必须得有某种形式的政府当局的介入,包括限制商业活动以为全局稳定保驾护航的指导。因此,金融监管通常被认为是强制性的,或者,正如欧洲传统里涉及的思想一样,隶属于“公共治安”:公共团体执行其规定,违反则将受到刑事或民事制裁,而抵触条款将被宣布无效。2023-07-19 18:18:291
foreign actors 除了外国演员有元首之类的意思吗?字典上只有演员的意思,英语翻译不出来
关联者,行动者,参与者亲:祝你学习进步,每天都开心V_V!望采纳,thx!2023-07-19 18:18:363
android 代码混淆算法有哪些
根据 SDK 的版本不同有 2 中不同的代码混淆方式,以上的 proguard.cfg 参数详解中所涉及到的信息是在较低版本 SDK 下的混淆脚本,事实上在高版本的 SDK 下混淆的原理和参数也与低版本的相差无几,只是在不同 SDK 版本的环境下引入混淆脚本的方式有所不同。具体方法如下: 低版本 SDK 下,项目中同时包含 proguard.cfg 和 project.properties 文件,则只需在 project.properties 文件末尾添加 proguard.config=proguard.cfg 再将项目 Export 即可。 高版本 SDK 下,项目中同时包含 proguard-project.txt 和 project.properties 文件,这时需要在 proguard-project.txt 文件中进行如下信息的配置,然后再将项目 Export 即可。下面以真实的文件进行演示说明。 复制代码 # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-16 复制代码 以上的配置信息即是 project.properties 文件中内容,蓝色文字为我们在代码混淆过程中需要添加的配置信息,其中:sdk.dir 为你在当前机器上 SDK 的安装路径。如果想保留某个包下的文件不被混淆,可以在 proguard-project.txt 文件中加入保留对应包名的语句即可。 复制代码 # To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: -dontwarn com.cnki.android.cnkireader.** -keep class com.cnki.android.cnkireader.** { *; } # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} 复制代码2023-07-19 18:18:451
Android怎么把一个现有工程打包成sdk
打包成aar2023-07-19 18:18:552
Symbolic development
symbolism的发展不是symbolic development而是the development of symbolism,懂吗?symbolic development作为名词是一个学术用词,首先已经给你翻译过了2023-07-19 18:19:032
高分英译汉!急!!!
上雅虎在线翻译2023-07-19 18:19:343
代码混淆 proguard怎么写
具体混淆的步骤简单。首先,我们需要在工程描述文件project.properties中,添加一句话,启用ProGuard。如下所示:[java] view plain copy# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-19 这样,Proguard就可以使用了。当我们正常通过Android Tools导出Application Package时(或者使用ant执行release打包),Proguard就会自动启用,优化混淆你的代码。导出成功后,你可以反编译看看混淆的效果。一些类名、方法名和变量名等,都变成了一些无意义的字母或者数字,证明混淆成功。2023-07-19 18:19:441
求翻译 Ed sheeran 的 This 中文歌词
这是一些美丽的开始 这是一个新的开端 你是那个让我松了 哦,你是新事物的开始 我把一切都扔掉 看你又落入我的胳膊 我把一切都扔掉 现在看你, 我将站在你是地球 你的话我会唱歌 我都扔了 看你又落入他的手臂 我都扔了 看着你,现在 带我回来 带我回家2023-07-19 18:19:271
Internal,remote是什么意思
词典结果:internal[英][inu02c8tu0259:nu0259l][美][u026anu02c8tu025anu0259l]adj.国内的; 内部的; 体内的; 内心的; prep.(机构)内部的; n.内脏,内部器官; 本质,本性; 词典结果:remote[英][ru026a"mu0259u028at][美][ru026au02c8mot]adj.(时间上)遥远的; 远离的; 远程的; 微小的; n.远程操作; 遥控器; vt.使…向远方延伸,把…延展到远处; 最高级:remotest比较级:remoter2023-07-19 18:19:311
包容天下用英语怎么说
包容天下_有道翻译翻译结果:Inclusive world2023-07-19 18:19:313
photograph ed sheeran是讲什么
歌曲唱的是爱情、亲情和成长,触动心灵,泪眼朦胧。歌名:Photograph 歌手:Ed Sheeran所属专辑:X (Deluxe Edition)Loving can hurt爱情会带来伤害Loving can hurt sometimes有时候,爱情会带来伤害But it"s the only thing that I"ve known但我只知道这个,仅此而已When it gets hard当我俩前景堪忧,You know it can get hard sometimes你知道有时如此It is the only thing that makes us feel alive困难让我们感到还活着We keep this love in a photograph我们把爱保存在照片里We made these memories for ourselves制造属于我们的记忆Where our eyes are never closing在那儿,我们的双眼永不合上Our hearts hearts were never broken两颗心永不受伤And times forever frozen still而时间却永远地冰封,凝固So you can keep me inside the pocket of your ripped jeans那你就可以把我放进你的裤袋Holding me close until our eyes meet把我拉近,直到你我四目交投You will never be alone你不会孤独Wait for me to come home等我回家吧Loving can heal爱可以修补Loving can mend your soul爱可以修补你的灵魂And it"s the only thing that I"ve known但我只知道这个,仅此而已I swear it will get easier我发誓这会简单得多,Remember that with every piece of ya我会记住你的一颦一笑And it"s the only thing to take with us when we die当我们与世长辞,这会是我唯一依旧记得的东西We keep this love in a photograph我们把爱保存在照片里We made these memories for ourselves制造属于我们的记忆Where our eyes are never closing在那儿,我们的双眼永不合上Our hearts were never broken两颗心永不受伤And times forever frozen still而时间却永远地冰封,凝固So you can keep me inside the pocket of your ripped jeans那你就可以把我放进你的裤袋Holding me close until our eyes meet把我拉近,直到你我四目交投You won"t ever be alone你不会孤独And if you hurt me that"s okay baby就算你伤害了我 宝贝,没事的Only words bleed受伤的不过是言词Inside these pages you just hold me在这照片里,你依然把我抱紧And I will never let you go我永远不会让你离去Wait me for me to come home等我回家吧And you could fit me inside the necklace you got你可以把我放进你带着的项链里When you were sixteen我就在你的心跳旁边Next to your heart right where I should be请把我牢记在灵魂深处Keep it deep within your soul请把我牢记在灵魂深处And if you hurt me就算你伤害了我But that"s okay baby宝贝,没事的Only words bleed受伤的不过是言词Inside these pages you just hold me在这照片里,你依然把我抱紧And I won"t ever let you go我永远不会让你离去When I"m away我不在的时候,I will remember how you kissed me会记得当时你怎样吻我Under the lamppost back on 6th street就在第六街的路灯下Hearing you whisper through the phone透过电话,我要听到你的密语Wait for me to come home等我回家吧2023-07-19 18:19:351
android studio中怎么快速生成for循环语句
很简单, fori就可以了. 当对象是list等集合的时候, 还可以 集合对象 .for 或 .fori 比如 list.fori再按enter就好了.Android studio中有很多这样的功能你可以按Ctrl + J 看提示.2023-07-19 18:19:371
如图,在正方形ABCD中,点E,H,F,G分别在边AB,BC,CD,DA上,EF,GH交于点O,∠FOH=90°,EF=4.则GH
解答:解:如图,过点F作FM⊥AB于M,过点G作GN⊥BC于N,设GN、EF交点为P,∵四边形ABCD是正方形,∴GN=FM,且GN⊥FM,∴∠EFM+∠GPF=90°,∵∠FOH=90°,∴∠HGN+∠GPF=90°,∴∠EFM=∠HGN,在△EFM和△HGN中,∠EFM=∠HGNGN=FM∠EMF=∠HNG=90°,∴△EFM≌△HGN(ASA),∴GH=EF,∵EF=4,∴GH=4,即GH的长为4.故答案为:4.2023-07-19 18:19:371
contain是什么意思
及物动词 vt.1.包含; 容纳 Whisky contains a large percentage of alcohol.威士忌的酒精含量极高。Rice contains protein and fat.大米含蛋白质和脂肪。The hall can contain two hundred people.大厅可以容纳200人。What is contained in this drawer?这抽屉里装的是什么?2.控制, 抑制 The little boy couldn"t contain his urine any longer.这个小孩再也忍不住小便了。The cholera outbreak has been contained.霍乱的发生已被控制住了。He contained his fear.他抑制住自己的恐惧。3.等于;相当于 A pound contains 16 ounces.一磅等于16英两。4.克制,容忍 At the sight of this cruelty, they could hardly contain their anger.看到这种惨不忍睹的景象,他们简直无法克制他们的愤怒情绪。5.牵制,遏制,制止 The cholera outbreak has been contained.霍乱的爆发已被遏制住。 6.【数学】是…的倍数,可被(某数)除尽 Fourteen contains seven and two.14可被7和2除尽。2023-07-19 18:19:404
inside怎么读
音赛的2023-07-19 18:19:413
Ed Sheeran的Sing属于什么类型的歌啊???
Sing 在 iTunes上标的是singer/songwriter,也叫民谣。但我个人觉得这首歌更多是流行或hip hop。如ed所说,他的新专辑中会有更多的hip hop和rap。2023-07-19 18:19:421
taylor swift 和ed sheeran还有另外一个男歌手合唱的歌曲,有MV,是什么?
从《everythinghaschanged》这首歌开始,taylorswift和edsheeran似乎就成了命中注定该在一起的金童玉女,相信无数的粉丝曾经都一度和小编一样坐等狗仔踢爆两人的恋情。结果无数场现场合唱都过去了,两人依旧保持着单纯;的朋友关系。然而近日英国一家名为star的杂志曝出了ted的&友情内幕!该杂志称:taylor和ed有过一个约定,如果30岁时候他们还在单身,那么他们将作为男女朋友开始约会!一个知情人士告诉杂;taylor和ed关系非常好,这也是为什么他们能毫无拘泥的讨论成为男女朋友可能性的原因。现在他们两个都还没到想安定下来的时候,这也就是为什么他们不希望发生危害彼此友情的事情。这么听起来,似乎非常有道理。虽然之前很多人都希望taylor和ed能成为ted,但是假若有一天他们两人分手,并且都发挥自己超凡的歌曲创作才能为对方写分手歌的话,估计我们都不会再相信爱情了!话虽如此,大家目测taylor和ed真的会等到彼此都30岁再约会吗?或者3个月之后霉霉和ed真的就是you"llbemineandi"llbeyours2023-07-19 18:19:191
怎么评价 Ed Sheeran 现场演唱的能力
现场场面调度能力强。现场更有rap和b-box表演。其实《X》这张专辑就已经颠覆了大家对他民谣风的认知,唱功和才华可见一斑。还有身手灵敏巨星气质的歌手,充分证明黄老板是一个可摇滚可柔情可嘻哈可爵士的攻受皆备型人才,代表作即sing和don,谈的是客观感想,指挥歌迷分区域合声。刚刚从黄老板演唱会上归来;t,将近两个小时一个人站在台上用几把吉他在不带合声的情况下把十几首重新编曲的歌完美演出2023-07-19 18:19:121
contained可以做形容词吗?为什么字典没这个词,除了它是过去时,但是资料上说它是形容词,我有疑问
contained是contain的过去分词作形容词的形式,通常情况下用作后置定语例如:peoplecontained意为相关的人knowledgecontained意为包括的知识2023-07-19 18:19:054
如何评价Ed Sheeran
巨星气质的歌手。刚刚从黄老板演唱会上归来,谈的是客观感想,将近两个小时一个人站在台上用几把吉他在不带合声的情况下把十几首重新编曲的歌完美演出,唱功和才华可见一斑。其实《X》这张专辑就已经颠覆了大家对他民谣风的认知,代表作即sing和don"t。现场更有rap和b-box表演,充分证明黄老板是一个可摇滚可柔情可嘻哈可爵士的攻受皆备型人才。现场场面调度能力强,指挥歌迷分区域合声。还有身手灵敏,有歌迷的荧光棒突然扔到台上被他机智地躲开了真是个灵活的胖子呢2023-07-19 18:19:051
Win10安卓模拟器怎么用
BlueStacks先把游戏安装程序APK下载到电脑BlueStacks模拟器开启状态下,在下载好的APK上点鼠标右键,选择打开方式为BlueStacks,开始安装应用程序安卓SDK版可用百度手机助手或豌豆荚安装应用2023-07-19 18:19:052
e的负t平方次方的不定积分等于多少
这个函数没有办法积出原函数,但是这个函数的积分恰好是正态分布函数的变体,可以参照正态分布表查定积分数值2023-07-19 18:18:585
如何评价Ed Sheeran抄袭事件
这件事哪有某黄粉说的那么复杂...我是黄粉,但是我不会像他(她)如此地去偏向我黄下面是几个小Fact1,惊人的相似是存在的,听过的人也应该不能否认这一点,两首歌曲的副歌几乎同步,除了速度稍慢稍快以外。2,歌曲抄袭这种事情在程度上是难以用数据定位的,“抄袭”,“借鉴”,“参考”之间的区别,不像某些事物,能被精确的定位并且判断出来,所以法庭所裁决的结果不一定是正确的,但是在多数情况下是代表了大多数人都想法。3,如果Photograph并没有“抄袭”,“借鉴”,“参考”之类的事情发生,这种鬼斧神工的巧合,只能说Ed应该和Matt在一起的,完美无缺~(腐)————————————说说个人观点:黄老板的确“借鉴"了Amazing,但是”借鉴“的幅度实在有点大,所以会被法庭认为抄袭了。如果说这是个巧合而已,那这个相似度实在是大到令人难以信服。以下是对某些问题的反驳:1,Matt想要”卑鄙“地”利用“Ed的大红大紫重新成名炒作能说出这种说法的只能代表你并没有了解这件事情的始末,仅凭对黄老板或者其歌曲Photograph的热爱,便在这里抹黑一位从来都没有听说过的歌手。对Ed起诉的并非Amazing的原唱歌手Matt,而是作曲家Martin Harrington and Thomas Leonard,还有他们的出版社HaloSongs,在此事爆出之后,Matt不得不出面澄清,以防止被某些无脑黄粉伤害到,有人甚至出言:”抄袭你的歌曲又怎么啦?人家抄袭都比你的歌好听“。2,我的天才黄老板天神下凡写的歌个个鬼斧神工要抄袭你一个小小的Matt?‘这句话前半句我是同意的,但是后半句就不是一个有素质的粉丝该说的了。的确,Ed是个天才,我一直这样觉得,我也一直觉得他是个人品非常好非常棒的人,但是在这两段相似之极的情况下我真的想要听听Ed想说点什么,就算说一句”这是极大的巧合“也是很好的吗。然而无脑粉丝说出来这句话确实过分,为了喜欢歌手不应该随意夸大,或者随意贬低他人。2023-07-19 18:18:571
电池行业产能过剩,宁德时代躲不开价格战,“小散”警惕
这几天,电池行业龙头宁德时代风波不断。6月5日,一辆浙A牌的大众ID.4X碰撞收费站设施后瞬间起火,车上4人死亡。资料显示,该车搭载的是三元锂电池,电芯由宁德时代提供。事故发生后,宁德时代被网友推上风口浪尖。6月7日,摩根士丹利发布研报“看空”宁德时代,将宁德时代评级下调至“低配”。当日,宁德时代大跌5.46%,市值缩水526亿元。股价一路狂泻之际,宁德时代重要合作伙伴长安汽车董事长、党委书记朱华荣,在2023中国汽车重庆论坛上,分享了关于动力电池过剩的观点:“到2025年中国需要的动力电池产能将达到1200GWh,但目前行业产能规划已经超过4000GWh”。朱华荣指出,当前动力电池产能严重过剩,产业必将回归到理性状态。朱华荣的观点与摩根士丹利“看空”理由,不谋而合。一波未平一波又起,6月8日晚,广汽集团发布公告称,董事会决定对控股子公司广汽时代动力电池系统有限公司进行清算注销。据悉,广汽时代是广汽集团与宁德时代在2018年共同出资成立。有媒体指出,合资公司清算注销,意味着广汽将要全面掌握“大三电”话语权。作为汽车行业观察者、二级市场投资者,宁德时代是我重点关注的企业之一。2021年、2022年我分别撰写了《PE高达237,海量限售股解禁,“小散”警惕别为宁德时代“站岗”》《“妖股”宁德时代:造富盛宴过后,问题浮上水面》两篇文章,提醒网友不要被当时资本市场高涨的情绪左右,要理性看待“宁王”。若你有幸看到,并认同文章的观点,现在看来至少能有效避免一些不必要的亏损。2021年12月3日,宁德时代市值一度突破1.6万亿元。但截至2023年6月16日收盘,宁德时代的股价231.10元,市值只剩下1.02万亿元。摩根士丹利“看空”宁德时代,我关注是它看空的理由,至于有没有意识形态作祟,现阶段争论其实没多大意义,时间才是最严厉的裁判。就像两年前,中国规模最大的证券公司——中信证券曾给予宁德时代2023年65倍PE估值,对应市值1.755万亿元,目标价754元/股。如今回看,就像个笑话。宁德时代接下来会深陷价格战撰稿的时候,我发现有媒体不专业,把动力电池产能等同于锂离子电池产能。这是错误的表述。宁德时代锂离子电池产能,涵盖了动力和储能型锂电,其他电池厂商产能还涵盖了消费类锂电。单看锂离子电池产能和在建规划,是不能得出宁德时代已经够为整个国内新能源汽车市场提供动力电池的。我查询到了准确的数据。2020年末,宁德时代锂离子电池产能为69.1GWh,产能利用率达74.83%;2020年,中国锂电池总出货量158.5GWh。2021年末,宁德时代锂离子电池产能为170.39GWh,产能利用率95%;2021年,全国锂离子电池出货量为324GWh。2022年末,宁德时代锂离子电池产能为390GWh,产能利用率83.4%,在建152GWh;2022年,全国锂离子电池出货量为750GWh。宁德时代预计,2025年,公司锂离子电池产能为不少于670GWh;据中商产业研究院预测,2025年,全国锂离子电池出货量将达1747GWh。宁德时代2023年第一季度财报显示,固定资产96.1亿,在建工程323.5亿,共1289.6亿;2020年时,宁德时代固定资产196.2亿,在建工程57.5亿,共253.7亿。虽然宁德时代两年多的时间里“固定资产”、“在建工程”翻了5倍,可全国锂离子电池出货量也翻了4.7倍。宁德时代激进狂飙地扩建产能与行业增长速度是相匹配的。问题在于,在中国,电池行业不是石油化工行业,宁德时代不是中石油,行业也不只有宁德时代一家电池企业,根据中创新航的计划,到2025年,中创新航动力电池的产能将达到500GWh。还有远景动力,近日将原先计划到2026年使锂电池的产能达到逾300GWh,变为到2026年达到400GWh。据说,2025年国轩高科产能规划为300GWh,蜂巢能源则是600GWh。全行业产能规划已经超过4000GWh!所以,长安汽车董事长、党委书记朱华荣才指出,中国电池产能规划严重过剩。产能过剩,势必引发价格战,价格战一旦开启,哪怕是赢家,也是伤敌一万自损八千。山雨欲来风满楼。有媒体报道,宁德时代工厂的工人已从以前排班的“做7休1”变成了“做5休1”,有些工厂甚至变成了“做4休3”。动力电池装机量排第3位的中创新航也传出了“订单不足导致部分员工离职”的消息。可见,摩根士丹利“看空”宁德时代不是空穴来风,而是有理有据。摩根士丹利认为产能过剩的情况下价格战不可避免,今年下半年二线电池厂为了获得更多的市场份额,可能会采取更加激进的价格战略。宁德时代在市场份额和利润率方面将受到影响,将宁德时代目标价下调约16%至180元。宁德时代护城河较浅,缺独家的核心技术技术是科技企业最坚固的护城河,可惜这么多年过去了,我依旧没看到宁德时代有独家的核心技术。宁德时代2022年的研发费用达到155亿元,研发投入占营业收入比例4.72%。与同行相比,公司在研发支出方面并不吝啬。但是,研发不是光看投入,还得有成果!财报显示,宁德时代主要研发项目是钠离子电池、麒麟电池、第二代无热扩散技术、M3P多元磷酸盐电池、凝聚态电池。除钠离子电池和麒麟电池已发布外,第二代无热扩散技术、M3P多元磷酸盐电池与凝聚态电池,正处于与客户推进落地中的状态。钠离子电池并非新科技,它的研究历史并不比锂电池短。由于能量密度低,一直未得到行业主流的重视,宁德时代也并没有取得重大突破。钠离子电池技术发布两年了,目前与宁德时代合作的车企只有奇瑞一家。4月16日,在奇瑞iCAR品牌之夜上,宁德时代宣布钠离子电池将首发落地奇瑞车型。据宁德时代公布的信息,第一代钠离子电池单体能量密度为160Wh/kg。与之相比,当前量产的三元电池的电芯能量密度普遍在200Wh/kg以上,有的甚至超过了250Wh/kg。假设一辆车搭载三元锂电池能跑500公里,搭载同等重量的钠离子电池只能跑350公里!续航里程是电动车的核心竞争力,能量密度是车用动力电池最重要的技术指标,在这个指标上,市场不接受倒退。当然,钠离子电池也有优点,就是成本低。宁德时代自己评价钠离子电池,说法就是“突破资源瓶颈的高性价比之选”。今年以来,电池原材料价格出现了暴跌暴涨,目前电池级碳酸锂价格报314000元/吨,十分昂贵。上游材料价高,下游整车厂却要求降价,没有议价能力的电池供应商很受伤。推出钠离子电池,并非因为该电池有多先进,而是宁德时代不得不寻求一种替代解决方案。问题是虽然钠离子电池性价比高,但消费者恐怕很难接受。因为目前电动车用户最大的痛点并不是车价太高,而是续航里程焦虑。被宁德时代称为王牌技术的麒麟电池在我看来,也算不上是独家技术。麒麟电池跟比亚迪的刀片电池有点类似,主要对电池包内部的连接进行结构上的优化,去除模组这个中间状态,简化装配工艺和流程,降低整包重量,从而提升能量密度。据介绍,该电池最大特点是体积利用率突破了72%,配用三元电芯能量密度可达255Wh/kg,磷酸铁锂电池系统能量密度可达160Wh/kg。但麒麟电池也存在缺陷,电芯损坏时返修难度大,可能需要整包更换,维修成本会大幅增加。印象中,自2019年10月发布CTP1.0,到如今CTP3.0的麒麟电池,已有4年时间,可搭载该技术的车型并不多,这一定程度上反映了整车厂的态度——不认可!还有曾经隆重其事地搞的巧克力换电块发布会,如今没再提及。至于主销的三元锂电池、磷酸铁锂电池,除了宁德时代外,中创新航、孚能科技、远景动力、蜂巢能源等电池厂商都能生产,技术上凸显不出差异化。宁德时代其实跟大多中国制造企业相似,走的是追求低成本、低技术、强规模、弱创新的发展模式,缺乏自身不可替代性的核心竞争力。车企不希望存在既造电池又造车的供应商两年前,宁德时代增长迅猛,包括中信证券在内的很多机构和财经人士都误判了形势,认为宁德时代会垄断全行业。其实,稍加分析就会知道宁德时代永远无法垄断。首先,动力电池的客户是车企,从车企的角度出发,无论何时,他们都不希望存在既生产电池又造车的强势供应商。国内第二大的动力电池供应商是比亚迪,但因为比亚迪也造车,车企过去才选择向宁德时【本文来自易车号作者DearAuto,版权归作者所有,任何形式转载请联系作者。内容仅代表作者观点,与易车无关】2023-07-19 18:18:571