问题
如何找到算法的时间复杂度?
在SO上发布问题之前我做了什么?
但是,我没有能够找到关于如何计算时间复杂度的明确而直接的解释.
我知道什么 ?
假设代码如下所示:
char h = 'y'; // This will be executed 1 time
int abc = 0; // This will be executed 1 time
Run Code Online (Sandbox Code Playgroud)
说一个像下面这样的循环:
for (int i = 0; i < N; i++) {
Console.Write('Hello World !');
}
Run Code Online (Sandbox Code Playgroud)
int i = 0; 这只会执行一次.实际计算时间i=0而不是声明.
我<N; 这将执行N + 1次
i ++; 这将被执行N次
所以这个循环所需的操作数量是
{1+(N + 1)+ N} = 2N + 2
注意:这仍然可能是错误的,因为我对计算时间复杂度的理解没有信心
我想知道什么? …
关于我的计划的效率,我处于" 特殊 "状态.现在我处于需要提高应用程序性能和减少电池消耗的阶段.
在问题之前:
现在,我很想知道其他开发人员用于优化自己应用程序的特殊修复程序.用户可能永远不会识别或注意的东西.但是,修复将延长电池寿命或帮助改善应用程序的维护.
那么,你的独特优化技巧是什么?
我处在一个特殊的情况,我正在寻找知识,我认为这将是一个很好的机会,可以分享开发人员对他们所处过的情况的了解.
请投票给出很好的答案,因为这将鼓励优秀的开发人员分享他们的知识.
我在这个问题上有点困惑,如果使用ContentProvider或者更好Database.或者,如果我不想与其他应用程序共享任何数据,则没有任何区别.
如果我理解正确,内容提供商基于数据库,SQLite并且它们的内容也可能只能访问我的应用程序.
你能解释一下吗?
非常感谢你,
穆尔
我试图调试我的协程,但放置在挂起函数中的断点不起作用。请帮助我理解为什么。
使用 Android Studio。
好的,我从 viewModelScope 启动了一个协程:
viewModelScope.launch(IO) {
when(val result = interactor.getAllWords()){...}
}
Run Code Online (Sandbox Code Playgroud)
在getAllWords()我写道:
override suspend fun getAllWords(): WordResult {
val words = mutableListOf<Word>()
when (val wordsResult = getAllWordsWithoutFiltersApplying()) {}
...
return getWordsWithSelectedPattern()
Run Code Online (Sandbox Code Playgroud)
我有两个挂起功能:getAllWordsWithoutFiltersApplying()和getWordsWithSelectedPattern()。我对它们都有一个断点,但它们没有在调试模式下触发。
同时,线 val words = mutableListOf<Word>(),当我将断点放在它的行上正在触发。
而且,如果我将一些日志内容放入“untracing”功能中,它们将起作用。我这么说是为了说明,暂停功能有效。断点不是。
我该怎么做才能调试它们?
*截图已添加。看左边有一排图标。为什么我的线路不可用?
根据文件,
在活动启动完成时调用(在onStart()和onRestoreInstanceState(Bundle)之后调用).应用程序通常不会实现此方法; 它适用于系统类在应用程序代码运行后进行最终初始化.
派生类必须调用超类的此方法的实现.如果他们不这样做,将抛出异常.
不建议使用此方法.但是,我用它来调整一些元素onCreate.我看到有些人用它来做某事,onResume()并建议他们不要这样做,因为他们不能依赖这种方法(由于文档不好).
那么,我可以在这里使用调整(它根本不依赖onResume)吗?
你有没有使用过这种方法?何时/为什么?
我从这里下载代码我想显示图标如何可以帮助我帮助我.

public class MainActivity extends FragmentActivity implements
ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Text", "Photo", "Record" ,"Tag"};
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
final int[] ICONS = new int[] {
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher,
R.drawable.ic_launcher,
};
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name) …Run Code Online (Sandbox Code Playgroud) 我不完全确定我在文档中阅读的内容.是否可以留下一堆logD代码片段,或者我应该将它们注释掉,以免它们影响我的应用程序的性能.
谢谢,
我有点困惑,因为如果你读到日志对象(文档),你会看到:
"详细程度方面的顺序,从最小到最多是ERROR,WARN,INFO,DEBUG,VERBOSE.除了在开发过程中,不应该将详细编译到应用程序中.调试日志在运行时编译但是被剥离.错误,警告和信息记录始终保留."
几乎听起来可以将调试消息留在那里因为它们被"剥离"了.无论如何,谢谢你的答案,我会在完成后对它们进行评论.一旦应用程序完成,我就不需要它们了.
谢谢
我正在学习机器人并且正在努力探索这个特定的布局属性,阅读谷歌开发文档它说:
android:layout_column
Run Code Online (Sandbox Code Playgroud)
该子项应该在的列的索引.必须是整数值,例如"100".这也可以是对资源的引用(其形式为"@〔包:]类型:名称为")("?[包:] [类型:]名称"的形式)或主题属性包含该类型的值.这对应于全局属性资源符号layout_column.
任何人都可以解释这是如何映射到一个html等价物(因为表格行似乎从他们那里大量借用)?
这是它所采用的柱数 - 例如colspan?
我正在构建一个存储用户潜在私密笔记的应用程序.我有点奇怪,我可以进入Firebase Forge UI并查找任何人编写的内容,这也意味着任何以某种方式访问我的Firebase帐户的人都可以进入并选择"导出JSON"到获取我所有用户的数据.
显然我对我的帐户非常谨慎并且是一个严谨的人,但管理员通常不能访问我们所有用户的数据似乎是一种好习惯.
我能想到实现这一目标的唯一方法是将所有内容存储在已通过用户密码加密的字符串化JSON中,但这显然使得处理Firebase更加烦人,并且会阻止细粒度访问低于该点的数据.事物是字符串化和加密的.
编辑:这是第二个想法,不是特定于Firebase,而是大多数/所有数据存储的情况,除非你不按照自己的方式去做.
在我的演示项目中,proguard-rules.txt在Android工作室中不可用.
我一定错过了一些代码:
我在哪里可以找到proguard-rules.txt文件?
我想添加proguard规则
任何帮助都是适当的
谢谢