Android之开发杂记(一)
1、cygwin环境变量设置
可在Cygwin.bat 中设置
set NDK_ROOT=P:/android/android-ndk-r8e
或者在home\Administrator\.bash_profile中设置
NDK_ROOT=/cygdrive/p/android/android-ndk-r8e
export NDK_ROOT
或者在运行程序前设置(绿色方式)
setlocal enabledelayedexpansion
set NDK_ROOT=%cd%\android-ndk-r8e
start %cd%\adt-bundle-windows-x86-20130522\eclipse\eclipse.exe
NDK与eclipse在同一级目录下。
2、Android 属性相关
<application android:icon="@drawable/icon"//应用安装后桌面显示的图标
android:label="@string/app_name">
<activity android:name=".FormulaStudy" android:theme="@android:style/Theme.NoTitleBar" //无标题
        android:screenOrientation="sensorLandscape" //只允许横屏切换
                  android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> //第一个Activity
            </intent-filter>
        </activity>
        <uses-library android:name="com.noahedu"/>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10"/>
    <uses-permission android:name="com.noahedu.permission.AWARD_SCORE"/>
</application>
3、Shell多行注释
: :||:<<\COMMENTS
注释内容
COMMENTS
4、SourceInsight配置
AStyle格式化工具: 在Command增加AStyle,在Run填写"~\AStyle.exe" --style=linux -s4 -S -N -L -m0 -M40 --suffix=none --convert-tabs %f,再配置快捷键
TabSiPlus外挂式的文件标签,下载后运行后再执行sourceinsight主程序
3、定时操作
Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable()
{
@Override
public void run()
{
}
}, 3000);
4、TagSoup 是一个Java开发符合SAX的HTML解析器
5、android-ndk-r8e/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''.
将AndroidManifest.xml文件先移动到其他地方,编译成功后再mv回来,这样操作果然成功。
6、
程序主动触发系统回收资源
System.runFinalization();
System.gc();
进程真正退出
System.exit(0);
1.不需要后台运行的app需在退出时调用上面的代码,以便系统回收资源和进程真正退出
2.app运行过程中也可以在合适的时候主动触发系统回收资源
基本上是Activity退到后台时加入以下一段代码处理
if (isTaskRoot()) {
	System.runFinalization();
	System.gc();
	System.exit(0);
}
7、退出所有Activity的方法
在BaseActivity类中
private static LinkedList<Activity> activityList = new LinkedList<Activity>();
在onCreate中activityList.add(this);每次进入新的Activity将this指针压入链表,
重写onDestroy()方法移除相应的Activity,activityList.remove(this);
退出所有的Activity时,只要调用finish();方法,并移除所有的Activity就可以了。
8、android系统jni示例
public class ImageDecoder {
	static{
		System.loadLibrary("mathappliedprodec");
	}
	public native boolean decode(String path, Bitmap bitmap, int imageType);
	public native boolean encode(String path, Bitmap bitmap, int imageType);	
}
#include <jni.h>
#ifndef _Included_com_noahedu_dataparser_ImageDecoder
#define _Included_com_noahedu_dataparser_ImageDecoder
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jboolean JNICALL Java_com_noahedu_dataparser_ImageDecoder_decode
  (JNIEnv *, jobject, jstring, jobject, jint);
JNIEXPORT jboolean JNICALL Java_com_noahedu_dataparser_ImageDecoder_encode
  (JNIEnv *, jobject, jstring, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif
注意函数名称命名方式。
java|包名|类名称|函数名称
Java_com_noahedu_dataparser_ImageDecoder_decode
9、jni调试
//在C工程、android工程 调试切换
#ifdef ANDROID
#include <android/log.h>
#define LOG_TAG "mathapplied"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#else
#define LOGI(...) printf(__VA_ARGS__);
#endif
10、jni杂记
jstring path
const char *file = (*env)->GetStringUTFChars(env, path, NULL);
(*env)->ReleaseStringUTFChars(env, path, file);
11、取消代码混淆编译
LOCAL_PROGUARD_ENABLED := disabled
12、使用jar包名称区分大小写
<uses-library
            android:name="PenWriterLib"
            android:required="false" />
13、listview背景黑块问题
android:cacheColorHint="#00000000"
12、在android程序中,如何将LogCat上的日志输出到文件?
LogCat存储在circular memory buffers中。
(1)、可以通过命令来导出Log:
详细参考 
http://developer.android.com/tools/help/adb.html#logcat
(2)、在程序中获取Log的方法:
- public class LogTest extends Activity {
 - @Override
 - public void onCreate(Bundle savedInstanceState) {
 - super.onCreate(savedInstanceState);
 - setContentView(R.layout.main);
 - try {
 - Process process = Runtime.getRuntime().exec("logcat -d");
 - BufferedReader bufferedReader = new BufferedReader(
 - new InputStreamReader(process.getInputStream()));
 - StringBuilder log=new StringBuilder();
 - String line;
 - while ((line = bufferedReader.readLine()) != null) {
 - log.append(line);
 - }
 - TextView tv = (TextView)findViewById(R.id.textView1);
 - tv.setText(log.toString());
 - } catch (IOException e) {
 - }
 - }
 - }
 
详细参考 
http://www.helloandroid.com/tutorials/reading-logs-programatically
Android之开发杂记(一)的更多相关文章
- Android之开发杂记(二)
		
1.android 4.0 以后 高版本没有虚拟菜单键
 - Android之开发杂记(三)
		
一.popup 弹出框 在onCreate中创建时异常 Unable to add window -- token null is not valid; is your activity runnin ...
 - Android N开发 你需要知道的一切
		
title: Android N开发 你需要知道的一切 tags: Android N,Android7.0,Android --- 转载请注明出处:http://www.cnblogs.com/yi ...
 - Android游戏开发实践(1)之NDK与JNI开发03
		
Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...
 - Android游戏开发实践(1)之NDK与JNI开发01
		
Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...
 - Android游戏开发实践(1)之NDK与JNI开发02
		
Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...
 - 【转】Android 底层开发的几点
		
我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径.根据前辈的经验,Android底层完全入门需要两年. 先说下我的入门过程:第零步,下载源码,我下的 ...
 - 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
		
<Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th 2014 Email:skyseraph00@163.com 更多精彩请直接 ...
 - Android安全开发之安全使用HTTPS
		
Android安全开发之安全使用HTTPS 1.HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验.主机名弱校验.webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易 ...
 
随机推荐
- Drools规则加载变量冲突问题分析
			
问题现象说明 在个别环境下加载规则时出现:rule/trade/hg/Rule_FY_*.java (53:3948) : Duplicate local variable paraMap,出现此问题 ...
 - Leetcode#123 Best Time to Buy and Sell Stock III
			
原题地址 最直观的想法就是划分成两个子问题,每个子问题变成了:求在某个范围内交易一次的最大利润 在只能交易一次的情况下,如何求一段时间内的最大利润?其实就是找股价最低的一天买进,然后在股价最高的一天卖 ...
 - NYOJ-85 有趣的数  AC                                                    分类:            NYOJ             2014-01-17 21:42    240人阅读    评论(0)    收藏
			
这道题目就是,找规律,小学奥数,找规律不难吧, #include<stdio.h> int sc(int x); int main(){ int n=0; int num,cs,k; sc ...
 - ASP.NET用户控件事件的定义和实践
			
假定用户控件(UserControl.ascx)中包含按钮控件 AButton,希望实现按 Button 按钮时,包含该用户控件的页面可以接收到事件. UserControl.ascx.cs ...
 - mysql同时修改2个表思路
			
1.需求:修改评论表中的昵称为手机号码最后4位. ,) AND issuer_name LIKE '1%'; 2.由于误操作(MID(issuer_name,4,6)是中间的6位),需要数据回滚. 3 ...
 - Sqli-labs less 60
			
Less-60 与上述一致,同样给出一个示例payload: http://127.0.0.1/sqli-labs/Less-60/?id=-1")union select extractv ...
 - js调试-定位到函数所在文件位置
			
原文:http://www.cnblogs.com/52cik/p/js-console-show-source.html 在控制台输入要查找的函数名如votePost 然后回车: 函数源码粗显啦,并 ...
 - HTTP协议中的5类状态码
			
① 客户方错误 100 继续 101 交换协议 ② 成功 200 OK 201 已创建 202 接收 ...
 - 安装WINCC6.0的步骤
			
安装WINCC6.0/6.2的步骤 (XP不能是HOME版的!!!) 1. 首先安装SQL FOR WINCC6.0/6.2这个软件(如果你的系统已安装此软件相关版本可能提示安装失败请卸载后再重 ...
 - LoaderManager使用详解(三)---实现Loaders
			
这篇文字将介绍Loader<D>类,并且介绍自定义Loader的实现.这是本系列的第三篇文章. 一:Loaders之前世界 二:了解LoaderManager 三:实现Loaders ...