Articles of java的

对象类中的Brooks指针

在Object.java代码中的Android SDK 21中,我遇到了“Brooks Pointer”一词。 我在这里看了这篇文章,但我没有清楚地了解它。 在post中,它被描述为对象本身在堆中的引用。 但它的用途是什么? 它将如何帮助垃圾收集和对象疏散?

Android Performance:Strings vs. Enums vs. Static Final Ints

之前已经问过部分内容,但我还没有find可靠证据和/或决定性答案。 在Bundle中围绕Android传递信息时,通过使用字符串 , 枚举或静态最终整数可以观察到(如果有的话)性能的增加/减少? 举一个用例示例,我的应用程序中有几次加载并显示某个片段。 每次加载片段时,Bundle都会传递给它,其中包含两个参数:显示数据的ID,以及指示如何显示它的模式。 我有一个自定义状态寻呼机适配器设置完成所有提升,但问题的关键在于:这些(如果有的话)将提供任何性能增益/损失: Bundle args = new Bundle(); args.putInt(“ID”, 1); // method 1 args.putString(“MODE”, “Mode1”); // method 2 args.putSerializable(“MODE”, ModeEnum.Mode1); // method 3 public static final int MODE_1 = 1; // this would be elsewhere in a constants class args.putInt(“MODE”, MODE_1); 在片段中,模式在几个地方被检查,所以我关心三个选项中的哪一个更有效地存储在包中,并且在另一端比较更有效。 任何建议,观察或经验将不胜感激!

如何将数组添加到okhttp体(POST)

现在我将数组作为字符串添加到正文: RequestBody body = new FormEncodingBuilder() .add(“profiles”, “[122, 125, 336]”) .build(); 但是服务器需要post参数上的数组。 我怎样才能添加数组而不是字符串? 它是否可以与okhttp一起使用?

使用身份validation标记的AES GCM实现

我在我的android项目中使用AES GCM身份validation,它工作正常。 但是与openssl API生成标记相比,在validation标记时遇到了一些问题。 请在下面findjava代码: SecretKeySpec skeySpec = new SecretKeySpec(key, “AES”); byte[] iv = generateRandomIV(); IvParameterSpec ivspec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance(“AES/GCM/NoPadding”); cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivspec); int outputLength = cipher.getOutputSize(data.length); // Prepare output buffer byte[] output = new byte[outputLength]; int outputOffset = cipher.update(data, 0, data.length, output, 0);// Produce cipher text outputOffset += cipher.doFinal(output, outputOffset); […]

如果我在java里面的sql命令中编写“INTEGER”或“int”是否重要?

当我执行sql命令,即在java代码中创建表时,如果我写: db.execSQL(“create table mytable (” + “scores int, ” + “);”); } 或这个: db.execSQL(“create table mytable (” + “scores INTEGER,” + “);”); } 或者它是同一个东西,只是不同的语法?

需要具有FBO扩展的OpenGL 2.0或更高版本 – LibGDX错误

我从一个月前开始使用LibGDX并且它工作得很好! 但是昨天,在更新到Java 8之后,我运行了两个曾经工作过的桌面项目,它向我展示了这个错误: video驱动程序不支持OpenGL 我在网上搜索了,发现有人发布了这段代码: System.setProperty(“org.lwjgl.opengl.Display.allowSoftwareOpenGL”, “true”); 好吧,它适用于我正在研究的项目僵尸鸟教程之一,但与另一个项目它显示: 需要具有FBO扩展名的OpenGL 2.0或更高版本。 OpenGL版本:1.1.0 Microsoft Corporation GDI Generic 1.1.0 PS:我的设备OpenGl版本是:3.1,Intel HD Graphics 3000,LibGDX版本:1.6.5,我正在使用Eclipse Juno。

ActionBar选项卡标题中的自定义字体

我正在尝试在ActionBar选项卡的标题上设置自定义字体。 我已经看到更多开发人员要求在SO上执行此操作的正确方法(例如, 如何自定义操作栏选项卡的字体以及 如何(如果可能)我可以在标签文本的ActionBar中设置自定义字体,并在我的资产中使用字体文件夹? )但没有答案。 到目前为止,我遵循了两种方法: 1)第一个受到这个SO问题的 启发 ,包括为每个标签膨胀自定义布局: LayoutInflater inflater = LayoutInflater.from(this); View customView = inflater.inflate(R.layout.tab_title, null); // a custom layout for the tab title, basically contains a textview… TextView titleTV = (TextView) customView.findViewById(R.id.action_custom_title); titleTV.setText(mSectionsPagerAdapter.getPageTitle(i)); titleTV.setGravity(Gravity.CENTER_VERTICAL); titleTV.setTypeface(((MyApp) getApplicationContext()).getCustomTypeface()); // …Here I could also add any other styling I wanted to… actionBar.getTabAt(i).setCustomView(customView); 这看起来不是一个非常好的方法,因为如果选项卡+操作不适合横向模式下的ActionBar,则选项卡标题将显示在溢出列表(Spinner / Drop-down)中,但所选值显示为空。 […]

Android Barometer海拔高度读数错误?

我一直在努力实现一项function,以便根据Android Galaxy S5手机的气压计传感器获得正确的海拔高度。 唯一的问题是,我不认为这是准确的。 根据http://www.whatismyelevation.com在我的特定位置,它显示我的海拔高度约为114米。 但是,在我的手机上,根据气压计传感器显示它是210米。 然而,我在一座高楼里,但我认为它不是100米高。 这是我的简单代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.configure_settings); context = getApplicationContext(); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensors = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE); if (sensors.size() > 0) { sensor = sensors.get(0); mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } } @Override public void onSensorChanged(SensorEvent event) { float pressure = event.values[0]; altitude = String.valueOf(SensorManager.getAltitude( SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure)); } […]

有没有办法在Android Studio中使用Maven插件禁用javadoc崩溃?

我正在使用com.github.dcendents:android-maven-gradle-plugin生成一个POM文件,然后将其上传到Bintray。 虽然当我运行./gradlew install ,脚本会调用Maven的install命令,而FAILS会生成JavaDoc。 我已经到处寻找如何禁用javadoc错误,但总有一个问题我无法解决。 测试:’failOnError false’,禁用javadoc任务(不允许),添加各种参数以install POM生成任务,在CLI上尝试不同的标志等。 我用过这个教程 。

startAnimation上的NullPointerException(anim)

我在blah.startAnimation(anim)上得到一个NullPointerException,它位于LongClickListener 。 我想要做的是在DragListener上获取GridLayout中的子项数,并在开始拖动imageview时为所有子项设置animation。 由于某种原因,这会返回NullPointerException, 它的来源是: @Override public boolean onLongClick(View v) { View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v); v.startDrag(null, shadowBuilder, v, 0); deleteAreaForAdapter.setVisibility(View.VISIBLE); deleteAreaForAdapter.startAnimation(slide_in); for(int i=0; i 0) { GridLayout hjk = middleViewForAdapter; LinearLayout middleChild = (LinearLayout)hjk.getChildAt(i); middleChild.startAnimation(shakeAnim); ll.clearAnimation(); } if(middleChildCount1 > 0) { GridLayout hjs = middleLayoutForAdapter1; LinearLayout middleChild1 = (LinearLayout)hjs.getChildAt(i); middleChild1.startAnimation(shakeAnim); //Line it’s coming from! […]