小编Lou*_*rda的帖子

Android Studio在i7处理器上使用100%CPU进行项目重建

我的Windows 7机器有一个四核i7处理器.当我重建我的项目时,平均需要25秒.当我启动应用程序时,平均需要36秒(在应用程序上传到设备之前).

我的项目的/ src文件夹中有588个文件,其中包含我的所有java和xml代码.我的/ libs文件夹中有两个.so库,每个5MB和7个罐子.

请参阅我附带的截图.正如您所看到的,我的CPU在整个时间内的最大值都达到了100%.我的iTunes音乐暂停,我在Windows任务栏的右下角出现"性能不佳"弹出窗口.那真是太糟糕了.

我正在使用Android Studio 1.2.1.1

大部分时间都是在preDex和dex操作期间花费的.

这是我到目前为止所尝试的内容(另外,我没有一起尝试过):

  1. 添加gradle.properties - >"org.gradle.daemon = true"
  2. 省电
  3. 模式无效缓存/
  4. 重新启动全局Gradle Setings - > Offline
  5. 工作编译器 - >自动生成项目

什么都没有奏效.我无法想象这是一个常见的问题,对吗?我是不是因为这真的比Eclipse慢得多?

我想我的问题是:

  1. 这可能是由于我的罐子大小等等?
  2. 我接管了一个在XML文件中有许多嵌套视图的项目.这会导致问题吗?

我真的很喜欢吸管,所以如果有人有任何信息,特别是为什么dex操作占用了这么多的CPU,这将是非常棒的.

我想不用说,如果我编辑XML文件,进行重建,然后启动应用程序,就会发生这种情况.如果没有什么可以清理和重建......当我做一个Make Project时......平均构建时间是3秒.

在此输入图像描述

java android android-studio

16
推荐指数
3
解决办法
2万
查看次数

如何使用新的Android 2.0 Shrinker并设置useProguard false?

我升级到Android Studio 2.0 Beta 5.我使用的是gradle tools 2.0.0-beta5.在Android dev blogspot网站上,有一个视频解释了如何使用新的Shrinker进行调试构建(在3:14)

https://www.youtube.com/watch?list=PLWz5rJ2EKKc_w6fodMGrA1_tsI3pqPbqa&v=xxx3Fn7EowU

我正在尝试使用调试buildType构建我的项目,如视频中所述:

    debug {
        minifyEnabled true
        useProguard false
    }
Run Code Online (Sandbox Code Playgroud)

我收到一堆警告,然后在构建时出现此错误:

Error:Execution failed for task 'app:transformClassesWithNewClassShrinkerForMyAppNameGoesHereDebug'.
Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.
Run Code Online (Sandbox Code Playgroud)

使用Proguard,我会在proguard项目文件中添加必要的-dontwarn.是否有一个Shrinker项目文件,我可以添加-dontwarn语句?

android proguard android-studio

14
推荐指数
1
解决办法
2231
查看次数

如何从Kindle PC复制代码并保留格式

有没有人想出一个从Kindle PC复制代码的好方法?

我刚刚第一次向Kindle PC下载了一本编程书.本书中的代码格式非常好,我想将代码直接从Kindle PC书籍复制到Visual Studio,而不必使用自动缩进.出于某种原因,当我从书中复制文本时,不会保留任何空格,制表符或换行符.我最终得到了这个:

使用系统; 使用System.Collections.Generic; 使用System.Linq; namespace NumericQuery {class Program {static void Main(string [] args){List list = new List(){1,2,3}; var query = from number in number number number <3 select number; foreach(查询中的var编号){Console.WriteLine(number); }}}}

我很沮丧,因为我没有从作者的网站下载代码,因为我没有ISBN(因为我没有买硬拷贝).

kindle

10
推荐指数
1
解决办法
2567
查看次数

如何关闭Eclipse自动扩展我的项目文件夹?

我正在开发Android(不确定是否重要)关于工作中的可持续项目.我有一个非常大的项目,每个文件夹中有太多文件.每次我在源代码编辑器中单击打开的文件选项卡时,Eclipse都会自动打开文件所在的文件夹.我该怎么办呢?

eclipse directory expand project

7
推荐指数
1
解决办法
2453
查看次数

Android Studio Network Profiler无法看到JSON响应正文

我已升级到Android Studio 3.0 rc1.我正在尝试使用Network Profiler.我无法在响应正文中看到任何JSON

在此输入图像描述

在文档页面上,响应预览部分显示图像.Android Studio Network Profiler能够显示JSON吗?或者只是预览图像?任何帮助都会很棒.

android-studio

6
推荐指数
1
解决办法
455
查看次数

设置子视图的中心重力在水平布局中更改另一个子视图的布局对齐?

在我的水平LinearLayout中,我将一个视图中的重力设置为center_vertical,然后我尝试为第二个视图设置layout_gravity,但该视图与第一个视图中的居中文本对齐!

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <TextView
        android:layout_width="100dp"
        android:layout_height="200dp"
        android:layout_gravity="top"
        android:background="@drawable/border"
        android:gravity="center_vertical"
        android:text="layout_gravity=top   gravity=center_vertical" >
    </TextView>            
    <TextView
        android:layout_width="100dp"
        android:layout_height="200dp"
        android:layout_gravity="top"
        android:background="@drawable/border"
        android:gravity="top"
        android:text="layout_gravity=top  gravity=top" >
    </TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是相同的代码,但垂直布局. 请注意,所需行为在垂直布局中正常工作.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:layout_gravity="left"
        android:background="@drawable/border"
        android:gravity="center_horizontal"
        android:text="layout_gravity=left   gravity=center_horizontal" >
    </TextView>            
    <TextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:layout_gravity="right"
        android:background="@drawable/border"
        android:gravity="right"
        android:text="layout_gravity=right  gravity=right" >
    </TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我可以使用RelativeLayout或者另一个嵌套的LinearLayout来解决问题.但是我问这个问题因为我想知道我是否不理解引力和layout_gravity是如何工作的!我理解这些基本属性是如何工作对我很重要.谢谢

android gravity android-linearlayout layout-gravity

5
推荐指数
1
解决办法
2363
查看次数

我可以在基础班和儿童班上注册 Otto 巴士吗?

我在我的 Android 应用程序中使用 Otto 事件总线。我已经阅读了 GitHub 文档和在线发布的关于层次遍历如何工作的各种问题:

“注册只会在直接类类型上查找方法。与 Guava 事件总线不同,Otto 不会遍历类层次结构并从被注解的基类或接口添加方法”

我知道如果我在子类上注册总线,则不会添加基类中的方法。所以我的问题是,我可以在子类中注册一个总线并在基类中注册另一个总线吗?

public class BaseActivity extends Activity
    ...
    baseBus.register(this);

    @Subscribe public void baseAnswerAvailable(BaseAnswerAvailableEvent event) {
        // TODO: React to the event somehow in the base class
    }

public class MainActivity extends BaseActivity
    ...
    bus.register(this);

    @Subscribe public void answerAvailable(AnswerAvailableEvent event) {
        // TODO: React to the event somehow
    }
Run Code Online (Sandbox Code Playgroud)

baseAnswerAvailable 和 answerAvailable 方法都会被调用吗?

android otto

5
推荐指数
2
解决办法
1109
查看次数

Android上的Spring Boot?

是否可以在Android设备上运行Spring Boot?

现在,我已经使用IntelliJ IDEA构建的Spring Boot在本地主机上成功运行了Web服务。我需要在Android设备上运行相同的Web服务代码。是否可以将Web服务应用程序构建为可以在Android手机上运行的JAR文件?我有一个运行Android Nougat的Google Nexus 6P。我做了一些有限的研究,发现了一个名为JBED的应用程序。到目前为止,我还无法正常工作。

我从头开始构建了示例JAR:

gs-spring-boot-0.1.0.jar
Run Code Online (Sandbox Code Playgroud)

希望我能找到一种运行此JAR的方法。我想这可能行不通,所以如果有人有更好的主意,那就太好了!

java spring android spring-mvc intellij-idea

5
推荐指数
1
解决办法
1万
查看次数

对于Android MVVM,按功能或按包进行打包哪个更好?

另一个“哪个更好”的问题,我知道这些都是主观的。我更好的定义是:

  1. 被最好的开发团队使用
  2. 最适合单元测试
  3. 最模块化/最容易构建产品应用
  4. Google的建议(这是我最困惑的地方)

所有Android蓝图均按功能打包:

https://github.com/googlesamples/android-architecture

/tasks
/addedittask
/taskdetail
Run Code Online (Sandbox Code Playgroud)

以及所有体系结构组件样本均逐层使用:

https://github.com/googlesamples/android-architecture-components

/db
/model
/ui
/persistence
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为在Architecture Components网站的底部,它实际上具有指向Android MVP和MVVM蓝图示例的链接,在我看来这是矛盾的。

android mvvm android-architecture-components

5
推荐指数
2
解决办法
495
查看次数

在我的应用关闭之前,如何显示Android通知?

我已经为Android开发了一段时间,但这是我第一次看到通知.我已经按照Android SDK教程中的说明设置了通知设置,但在我的应用关闭之前,我无法弄清楚如何显示通知.我想在通知结束时禁用那个小减号.当用户点击它时,我不希望我的通知消失.我认为会有一个通知标志......但我似乎无法弄清楚这一点.我正在开发Android SDK 2.2.我知道这是一个简单的问题,如果这个答案已经在这里,我道歉...我无法找到我想要的东西.

    // Create notification manager
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
    Notification notification = new Notification(R.drawable.ic_launcher, "Ready", System.currentTimeMillis());
    Intent notificationIntent = new Intent(this, HomeActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

    // Make a notification
    notification.setLatestEventInfo(getApplicationContext(), "Ready", "Select to manage your settings", contentIntent);
    mNotificationManager.notify(0, notification);
Run Code Online (Sandbox Code Playgroud)

notifications android notificationmanager

4
推荐指数
1
解决办法
2570
查看次数

为什么AndroidAsync断开时间这么久?

我正在使用AndroidAsync koush低级网络协议库.我正在使用WebSocket连接到服务器.我能够连接,发送/接收消息和断开连接.我的断开时间很长.服务器平均没有检测到断开连接59秒.

为了重现这个问题,我连接了WebSocket,授权并每隔10秒开始ping一次.然后我打开飞机模式,我的网络连接下降.此时调用setClosedCallback方法.以下是我记录此消息的方式:

private WebSocket mConnection;

private WebSocketConnectCallback mSocketCallback = new WebSocketConnectCallback() {
    @Override
    public void onCompleted(Exception ex, WebSocket webSocket) {
    ...
            webSocket.setClosedCallback(new CompletedCallback() {
            @Override
            public void onCompleted(Exception ex) {
                Log.d("websocket", "WebSocket closed");
                if (ex != null && ex.getMessage() != null) {
                    Log.e("websocket", "WebSocket closed exception: " + ex.getMessage());
                }
                disconnect();
            }
        });
    }
};

private void disconnect() {
    mPingHandler.removeCallbacks(pingRunnable);
    if (mConnection != null) {
        mConnection.close();
        mConnection = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是让我知道WebSocket已关闭的日志消息:

WebSocket关闭异常:recvfrom失败:ETIMEDOUT(连接超时)

但是,我们的服务器大约59秒没有收到断开连接消息.我们的服务器正在使用这些库:

  • GEVENT == 1.0
  • GEVENT-的WebSocket == …

android websocket androidasync-koush

3
推荐指数
1
解决办法
1758
查看次数

Gson自定义类型适配器仅在一个对象类型上序列化null?

我想在我的JSON主体中仅对一个PUT上的一个类型序列化null.我不想为对象中的任何其他类型序列化null.我有这样的事情:

public class Patient {
    public Address address;
    public String first_name;
    public String last_name;
}
Run Code Online (Sandbox Code Playgroud)

如果地址为空,我只想序列化地址.所以举个例子

Patient patient = new Patient();
patient.address = null;
patient.last_name = "Doe";
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

"address":null,
"last_name":"Doe"
Run Code Online (Sandbox Code Playgroud)

如果将地址指定为null,则患者不会离开对象,因为默认情况下Gson不会序列化我想要的空值,并且姓氏保留指定的字符串值.

我可以使用Gson自定义类型适配器吗?

public class GsonCustomAdapter extends TypeAdapter<Address>
Run Code Online (Sandbox Code Playgroud)

我对这个概念并不熟悉,并且一直试图理解它.任何帮助深表感谢.

java serialization json gson

3
推荐指数
1
解决办法
3353
查看次数