我的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操作期间花费的.
这是我到目前为止所尝试的内容(另外,我没有一起尝试过):
什么都没有奏效.我无法想象这是一个常见的问题,对吗?我是不是因为这真的比Eclipse慢得多?
我想我的问题是:
我真的很喜欢吸管,所以如果有人有任何信息,特别是为什么dex操作占用了这么多的CPU,这将是非常棒的.
我想不用说,如果我编辑XML文件,进行重建,然后启动应用程序,就会发生这种情况.如果没有什么可以清理和重建......当我做一个Make Project时......平均构建时间是3秒.
我升级到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语句?
有没有人想出一个从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(因为我没有买硬拷贝).
我正在开发Android(不确定是否重要)关于工作中的可持续项目.我有一个非常大的项目,每个文件夹中有太多文件.每次我在源代码编辑器中单击打开的文件选项卡时,Eclipse都会自动打开文件所在的文件夹.我该怎么办呢?
我已升级到Android Studio 3.0 rc1.我正在尝试使用Network Profiler.我无法在响应正文中看到任何JSON
在文档页面上,响应预览部分显示图像.Android Studio Network Profiler能够显示JSON吗?或者只是预览图像?任何帮助都会很棒.
在我的水平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 应用程序中使用 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设备上运行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的方法。我想这可能行不通,所以如果有人有更好的主意,那就太好了!
另一个“哪个更好”的问题,我知道这些都是主观的。我更好的定义是:
所有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开发了一段时间,但这是我第一次看到通知.我已经按照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) 我正在使用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秒没有收到断开连接消息.我们的服务器正在使用这些库:
我想在我的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)
我对这个概念并不熟悉,并且一直试图理解它.任何帮助深表感谢.