草庐IT

java - Android SDK是否有意使用旧版本的ProGuard

我使用AndroidSDK管理器来更新所有包。当前(2014-03-05)AndroidSDKTools是V22.6。查看C:\ProgramFiles(x86)\Android\android-sdk\tools\proguard\lib下的proguard.jar,发现版本是4.7。ThelatestversionofProGuardis4.11.V4.7wasreleasedin2011.SDK使用旧版本是否有充分的理由?我应该手动更新ProGuard吗?我听说如果手动更新proguard.jar,通过AndroidSDKManager更新SDK会覆盖它。任何澄清将不胜感激。

android - 复制保护对免费应用有意义吗?

我的免费应用在设备上占用了2倍的空间,因为它在GooglePlay中启用了复制保护。我没有启用它。我想知道是否有必要。2x空间非常负,我想禁用它。我也知道复制保护已被弃用,取而代之的是LVM,但我不知道这是否适用于我的用例。也许我只需要禁用复制保护。除了想保护代码之外,可能没有其他原因?但我不认为我有任何异常的、优秀的代码,只有良好的编程和一些聪明的技巧:)那么,就我而言,使用复制保护/LVM是否有意义,或者我只是禁用它?为了稍微保护代码,也许只能使用ProGuard进行混淆? 最佳答案 特别是对于设备的root和复制都很容易,混淆

android - 在当前 Play 商店中上传置顶大图是否有意义?

GooglePlay商店过去在应用程序页面上显示一个大横幅,称为置顶大图,但新布局不再显示此内容。它是否有可能在某个时候恢复,或者置顶大图是否用于不同的设置?或者根本没有理由再创建一个? 最佳答案 是的,仍然至少有3个创建置顶大图的充分理由:1)特点Play商店应用的“编辑推荐”区域使用置顶大图:2)Play商店小部件Play商店小部件为将小部件放置在主屏幕上的所有用户使用置顶图片。我经常使用这个小部件,相信我,它不仅仅是愤怒的小鸟。我见过的许多应用程序只有大约1000次下载,并且在我的小部件上获得了位置,因为我有来自同一开发商的其

android - SharedPreferences 的缓存值有意义吗?

在我当前的Android应用程序中,我有几个设置存储在SharedPreferences和一个处理对它们的访问的对象。我现在想知道缓存值是否有意义,或者访问它们是否不重要,例如:publicfinalbooleanisxxxEnabled(){returnpreferences.getBoolean("xxx",false);}代替publicfinalbooleanisxxxEnabled(){//checkifvaluechanged//ifnot,checkifvalueiscached//decidewhethertoreturncachedornew//cachevaluer

c++ - 提供非常量引用 getter 是否有意义

有时我需要暴露一些类(class)成员。例如在下面的例子中classMechanic可能需要直接访问Engine组件。由于多种原因,我已经多次读到所有字段都应该通过mutator(访问器)方法访问。但是在提供非const引用getter时有什么优势吗:classCar{public:Engine&engine(){returnm_engine;}//asaconsequenceyouwillalsoneedtoprovideconstversionconstEngine&engine()const{returnm_engine;}private:Enginem_engine;}简单地公

c++ - 使 std::atomic<> 对象具有限定符 - volatile 是否有意义?

使用限定符-volatile来创建原子对象是否有意义?使用那个:volatilestd::atomici(1);代替:std::atomici(1); 最佳答案 不,让std::atomic也具有易变性是绝对没有意义的,因为在std::atomic内部,代码将处理以下可能性变量可能随时更改,并且可能需要“告知”其他处理器它已更改(volatile未涵盖“告知”其他处理器)。你真正需要volatile的唯一时间是你有一个指向你的代码控制的硬件的指针-例如读取定时器中的计数器,或者哪个帧缓冲区是事件的现在,或者告诉网卡从哪里读取下一个要

c++ - 如果构造函数抛出异常,那么拥有该类的全局对象是否有意义?

我问这个问题是为了获得一般的编码指南:classA{A(){...throw0;}};Aobj;//如果obj在上面的代码中抛出异常,它最终会在调用main()之前终止代码。所以我的问题是,对于这种情况我应该采取什么指导方针?是否可以为此类类声明全局对象?我应该始终克制自己不这样做,还是从一开始就发现错误是一种很好的趋势? 最佳答案 如果您需要一个其构造函数可以抛出的对象的全局实例,您可以将变量设为静态,而不是:A*f(){try{//lock(mutex);->asPraetorianpointsoutstaticAa;//unl

c++ - 编译器将 cpu 寄存器中的这种结构传递给函数是否有意义?

我想知道某种结构是否包含多个基元但其总大小小于或等于单个cpu寄存器(如4字节寄存器)的大小,它对编译器有意义吗在按值传递或引用函数时将其放入那些4字节寄存器之一,而不是在被调用者堆栈上复制它或传递指向它的指针,并且通常在将多个原语传递给传入cpu寄存器的数组或结构之类的函数会派上用场吗?这种结构的例子:structsample{public:charchar1;charchar2;};将结构传递给函数的示例:voidsomeFunc(constsampleinput){//whatever}voidsomeFunc(sampleinput){//whatever}voidsomeFu

c++ - 这就是 C++ 11 中的移动构造函数有意义的原因吗?

最近我在和BjarneStoustrup一起做讲座,他在谈论c++11以及它为什么有意义。他的一个新的令人敬畏的例子是移动构造函数的新闻“&&”符号。然后我想回家并开始思考,“我什么时候需要这样的东西?”。我的第一个例子是下面的代码:classNumber{private:intvalue;public:Number(constintvalue):value(value){cout这段代码正是移动构造函数应该解决的问题。n3变量是根据对“+”运算符返回的值的引用构造的。除了这是运行代码的输出:BuildConstructoron1BuildConstructoron2BuildCons

c++ - 在现代 PC 的 C++ 异常类中避免 std::wstring 数据成员是否有意义?

在this"ErrorandExceptionHandling"中的“我应该如何设计我的异常类?”段落中Boost网页,上面写着:[...]3.Don'tembedastd::stringobjectoranyotherdatamemberorbaseclasswhosecopyconstructorcouldthrowanexception.我必须定义一个异常类来表示某种形式的文件访问运行时错误,所以我想从std::runtime_error派生它,并添加一个FileName()属性以访问发生错误的文件名。为简单起见,我打算添加一个std::wstring数据成员来存储文件名(Uni