android怎么写jni
1.如何在Android下使用JNI
Android中JNI是编译so库的源代码,编译成功后会生成SO库,android中最终是使用SO库的。
1.android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。2.安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库3.android应用程序开发环境: 包括eclipse、java、android sdk、adt等。
NDK编译步骤:1.选择 ndk 自带的例子 hello-jni ,我的位于E:\android-ndk-r5\samples\hello-jni( 根据具体的安装位置而定 ) 。2.运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:\android-ndk-r5\samples\hello-jni 目录。
3.输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )4.此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,ndk 就运行正常啦。
2.在android平台下写得JNI放在项目哪里呢,JNI后缀名是什么
原java语言编写的类仍放工程的src文件目录下,方法用native关键字进行修饰,编译后生成.class文件,在java类中通过静态块引入其调用的本地方法,引入如下:
public class Test{
static {
system.loadlibrary("name"); //引入动态库的名字
}
public native int hello(String str[]);
}
通过用C语言编写的JNI方法的头文件要包含java类通过java -h进行编译后的头文件。编写完JNI方法后,通过编译工具生成动态库文件(name.dll文件或name.so文件)(例如可把其放到jdk\bin目录下,也可把动态库放到工程同classes同文件夹的目录下),把该文件放于系统环境变量path中路径所在文件中,即可引入。
3.如何在Android下使用JNI
1.引言 我们知道,Android系统的底层库由c/c++编写,上层Android应用程序通过Java虚拟机调用底层接口,衔接底层c/c++库与Java应用程序间的接口正是JNI(JavaNative Interface)。
本文描述了如何在ubuntu下配置AndroidJNI的开发环境,以及如何编写一个简单的c函数库和JNI接口,并通过编写Java程序调用这些接口,最终运行在模拟器上的过程。 2.环境配置 2.1.安装jdk1.6 (1)从jdk官方网站下载jdk-6u29-linux-i586.bin文件。
(2)执行jdk安装文件 [html] view plaincopyprint? 01.$chmod a+x jdk-6u29-linux-i586.bin 02.$jdk-6u29-linux-i586.bin $chmod a+x jdk-6u29-linux-i586.bin $jdk-6u29-linux-i586.bin (3)配置jdk环境变量 [html] view plaincopyprint? 01.$sudo vim /etc/profile 02.#JAVAEVIRENMENT 03.exportJAVA_HOME=/usr/lib/java/jdk1.6.0_29 04.exportJRE_HOME=$JAVA_HOME/jre 05.exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 06.exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH $sudo vim /etc/profile #JAVAEVIRENMENT exportJAVA_HOME=/usr/lib/java/jdk1.6.0_29 exportJRE_HOME=$JAVA_HOME/jre exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 保存后退出编辑,并重启系统。 (4)验证安装 [html] view plaincopyprint? 01.$java -version 02.javaversion "1.6.0_29" 03.Java(TM)SE Runtime Environment (build 1.6.0_29-b11) 04.JavaHotSpot(TM) Server VM (build 20.4-b02, mixed mode) 05.$javah 06.用法:javah[选项]<类> 07.其中[选项]包括: 08.-help输出此帮助消息并退出 09.-classpath<路径>用于装入类的路径 10.-bootclasspath<路径>用于装入引导类的路径 11.-d<目录>输出目录 12.-o<文件>输出文件(只能使用-d或-o中的一个) 13.-jni生成JNI样式的头文件(默认) 14.-version输出版本信息 15.-verbose启用详细输出 16.-force始终写入输出文件 17.使用全限定名称指定<类>(例 18.如,java.lang.Object)。
$java -version javaversion "1.6.0_29" Java(TM)SE Runtime Environment (build 1.6.0_29-b11) JavaHotSpot(TM) Server VM (build 20.4-b02, mixed mode) $javah 用法:javah[选项]<类> 其中[选项]包括: -help输出此帮助消息并退出 -classpath<路径>用于装入类的路径 -bootclasspath<路径>用于装入引导类的路径 -d<目录>输出目录 -o<文件>输出文件(只能使用-d或-o中的一个) -jni生成JNI样式的头文件(默认) -version输出版本信息 -verbose启用详细输出 -force始终写入输出文件 使用全限定名称指定<类>(例 如,java.lang.Object)。2.2.安装android应用程序开发环境 ubuntu下安装android应用程序开发环境与windows类似,依次安装好以下软件即可: (1)Eclipse (2)ADT (3)AndroidSDK 与windows下安装唯一不同的一点是,下载这些软件的时候要下载Linux版本的安装包。
安装好以上android应用程序的开发环境后,还可以选择是否需要配置emulator和adb工具的环境变量,以方便在进行JNI开发的时候使用。配置步骤如下: 把emulator所在目录android-sdk-linux/tools以及adb所在目录android-sdk-linux/platform-tools添加到环境变量中,android-sdk-linux指androidsdk安装包android-sdk_rxx-linux的解压目录。
[plain] view plaincopyprint? 01.$sudo vim /etc/profile 02.exportPATH=~/software/android/android-sdk-linux/tools:$PATH 03. exportPATH=~/software/android/android-sdk-linux/platform-tools:$PATH $sudo vim /etc/profile exportPATH=~/software/android/android-sdk-linux/tools:$PATH exportPATH=~/software/android/android-sdk-linux/platform-tools:$PATH 编辑完毕后退出,并重启生效。 2.3.安装NDK NDK是由android提供的编译android本地代码的一个工具。
(1)从androidndk官网下载ndk,目前最新版本为android-ndk-r6b-linux-x86.tar.bz2. (2)解压ndk到工作目录: [plain] view plaincopyprint? 01.$tar -xvf android-ndk-r6b-linux-x86.tar.bz2 02.$sudo mv android-ndk-r6b /usr/local/ndk $tar -xvf android-ndk-r6b-linux-x86.tar.bz2 $sudo mv android-ndk-r6b /usr/local/ndk (3)设置ndk环境变量 [plain] view plaincopyprint? 01.$sudo vim /etc/profile 02.exportPATH=/usr/local/ndk:$PATH $sudo vim /etc/profile exportPATH=/usr/local/ndk:$PATH 编辑完毕后保存退出,并重启生效 (4)验证安装 [plain] view plaincopyprint? 01.$ cd/usr/local/ndk/samples/hello-jni/ 02.$ ndk-build 03.Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver 04.Gdbsetup : libs/armeabi/gdb.setup 05.Install : libhello-jni.so => libs/armeabi/libhello-jni.so $ cd/usr/local/ndk/samples/hello-jni/ $ ndk-build Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Install : libhello-jni.so => libs/armeabi/libhello-jni.so 3.JNI实现 我们需要定义一个符合JNI接口规范的c/c++接口,这个接口不用太复杂,例如输出一个字符串。接下来。
4.android studio 怎样进行jni开发
方法如下:
1.添加如下代码在MainActivity类内
static {
System.loadLibrary("hello_jni");
}
public native String getstringfromC();
2.打开终端,android studio已经提供了终端
3.首先进入java目录执行命令:
javah -d ../jni com.example.root.ndk_sample.MainActivity
com.example.root.ndk_sample.MainActivity是native函数的所在的包名和类名,中间使用“.”号分开
4.添加*.c文件在jni目录中
5.编写Android.mk和Application.mk 放在jni目录下面
6.Android.mk文件的内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=hello_jni
LOCAL_SRC_FILES := hello_jni.c
include $(BUILD_SHARED_LIBRARY)
Application.mk 文件内容为:
APP_ABI := all
APP_OPIM :=debug
5.如何在android源码中添加自己的jni方法
1,、项目实现了一个简单的四则运算,项目的目录层次如下:AndroidManifest.xml Android.mk jni res src资源文件简简单单,一个布局文件,稍后会有demo的下载地址主要记录备忘的内容如下:MainActivity.Java[html] view plain copypublic native int add(int x, int y);public native int substraction(int x, int y);public native float multiplication(int x, int y);public native float division(int x, int y);static{System.loadLibrary("arithmetic");}2、生成lib的名称为libarithmetic.so.注意load的时候写"arithmetic"jni 目录下有两个文件,一个是Android.mk,一个是c++源文件long.cppjni/Android.mk如下:[html] view plain copyLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_MODULE:= libarithmeticLOCAL_SRC_FILES:= \long.cppLOCAL_SHARED_LIBRARIES := \libutilsLOCAL_STATIC_LIBRARIES :=LOCAL_C_INCLUDES += \$(JNI_H_INCLUDE)LOCAL_CFLAGS +=LOCAL_PRELINK_MODULE := falseinclude $(BUILD_SHARED_LIBRARY)3、注释:LOCAL_PATH(必须定义,而且要第一个定义),宏函数'my-dir', 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录);include $( CLEAR_VARS),CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 等等。)
除LOCAL_PATH 。这是必要的,因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的;LOCAL_MODULE_TAGS :=user eng tests optionaluser: 指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests: 指该模块只在tests版本下才编译optional:指该模块在所有版本下都编译LOCAL_MODULE(必须定义),标识你在Android.mk文件中描述的每个模块。
名称必须是唯一的,而且不包含任何空格。Note:编译系统会自动产生合适的前缀和后缀,例如:arithmetic编译成功后将生成libarithmetic.so库文件LOCAL_SRC_FILES 变量必须包含将要编译打包进模块中源代码文件。
不用在这里列出头文件和包含文件。LOCAL_SHARED_LIBRARIES中加入所需要链接的动态库(*.so)的名称LOCAL_STATIC_LIBRARIES加入所需要链接的静态库(*.a)的名称LOCAL_CFLAG可选的编译器选项,用法之一是定义宏,例如LOCAL_CFLAGS := -Werror作用是编译警告也作为错误信息LOCAL_PRELINK_MODULE:=false,不作prelink处理,默认是要prelink操作的,有可能造成地址空间冲突(这地方目前还不明白) long.cpp源代码如下:[html] view plain copy#define LOG_TAG "LongTest2 long.cpp"#include#include#include "jni.h"jint add(JNIEnv *env, jobject thiz, jint x, jint y){return x + y;}jint substraction(JNIEnv *env, jobject thiz, jint x, jint y){return x - y;}jfloat multiplication(JNIEnv *env, jobject thiz, jint x, jint y){return (float)x * (float)y;}jfloat division(JNIEnv *env, jobject thiz, jint x, jint y){return (float)x/(float)y;}static const char *classPathName = "com/inspur/test2/MainActivity";static JNINativeMethod methods[]= {{"add", "(II)I", (void*)add},{"substraction", "(II)I", (void*)substraction},{"multiplication", "(II)F", (void*)multiplication},{"division", "(II)F", (void*)division},};typedef union{JNIEnv* env;void* venv;}UnionJNIEnvToVoid;static int registerNativeMethods(JNIEnv* env, const char* className,JNINativeMethod* gMethods, int numMethods){jclass clazz;clazz = env->FindClass(className);if (clazz == NULL)return JNI_FALSE;if (env->RegisterNatives(clazz, gMethods, numMethods)<0)return JNI_FALSE;return JNI_TRUE;}static int registerNatives(JNIEnv *env){if (!registerNativeMethods(env, classPathName,methods, sizeof(methods)/sizeof(methods[0]))){return JNI_FALSE;}return JNI_TRUE;}jint JNI_OnLoad(JavaVM* vm, void* reserved){UnionJNIEnvToVoid uenv;uenv.venv = NULL;jint result = -1;JNIEnv *env = NULL;if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_4) != JNI_OK){goto bail;}env = uenv.env;env = uenv.env;if (registerNatives(env) != JNI_TRUE){goto bail;}result = JNI_VERSION_1_4;bail:return result;}除了利用 编写native JAVA类,通过javah生成.h文件,根据.h文件编写.c/cpp文件 方法外(名字像老太太的裹脚步,又臭又长,而且不灵活),Android还可以通过引用JNI_Onload方式实现。
jint JNI_onLoad(JavaVM* vm, void* reverced),改方法在so文件被加载时调用。JNI_OnLoad()有两个重要的作用:指定JNI版本:告诉VM该组件使用那一个JNI版本(若未提供JNI_OnLoad()函数,VM会默认该使用最老的JNI 1.1版),如果要使用新版本的JNI,例如JNI 1.4版,则必须由JNI_OnLoad()函数返回常量JNI_VERSION_1_4(该常量定义在jni.h中) 来告知VM。
初始化设定,当VM执行到System.loadLibrary()函数时,会立即先呼叫JNI_。
6.Android Studio怎么用JNI编写出Hello World
第一步:
在自己项目中创建一个包含native的方法类HelloWorld.java -->包名com.ningso.ningsodemo
public class HelloWorld {
public native String sayHello(String name); // 1.声明这是一个native函数,由本地代码实现
static {
System.loadLibrary("hello"); // 2.加载实现了native函数的动态库,只需要写动态库的名字
}
}
第二步:
在终端执行javac命令将.java源文件编译成.class字节码文件
执行javac命令
-d 表示将编译后的class文件放到指定的文件夹下面
结果图:
编译后的字节码文件
以上也可以直接执行./gradlew build 不过文件就要自己去找了,该class在你的/app/build/intermediates/classes/debug文件夹对应的包名下
第三步:
继续在终端执行javah -jni命令 根据class文件生产.h头文件
Paste_Image.png
注意:-d和-o只能使用其中一个参数。
参数说明:classpath:类搜索路径,这里表示从当前的 bin 目录下查找
-d:将生成的头文件放到当前的 jni 目录下
-o: 指定生成的头文件名称,默认以类全路径名生成(包名+类名.h)
7.android开发 如何在jni本地代码 访问自己写的类
jclass GpsInfoClass = env->FindClass("com/parser/GPSINFO");
jfieldID ID_bValid = env->GetFieldID(GpsInfoClass,"bValid","I");
jfieldID ID_bSpeed = env->GetFieldID(GpsInfoClass,"bSpeed","I");
env->SetIntField(_obj,ID_bValid,(jint)info.bValid);
env->SetIntField(_obj,ID_bSpeed,(jint)info.bSpeed);
return _obj;
以上就可以了。但是不知道你的BYTE是自定义的什么类型,如果是char之类的,就另外想办法转换成jint。其中 _obj 变量是public native GPSINFO getGpsInfo();这个本地方法在C代码中的参数:JNIEXPORT jobject JNICALL Java_com_parser_GPSINFO_ getGpsInfo(JNIEnv *env, jobject _obj)
8.在android平台下写得JNI放在项目哪里呢,JNI后缀名是什
原java语言编写的类仍放工程的src文件目录下,方法用native关键字进行修饰,编译后生成。
class文件,在java类中通过静态块引入其调用的本地方法,引入如下:public class Test{ static { system。 loadlibrary("name"); //引入动态库的名字 }public native int hello(String str[]);}通过用C语言编写的JNI方法的头文件要包含java类通过java -h进行编译后的头文件。
编写完JNI方法后,通过编译工具生成动态库文件(name。dll文件或name。
so文件)(例如可把其放到jdkin目录下,也可把动态库放到工程同classes同文件夹的目录下),把该文件放于系统环境变量path中路径所在文件中,即可引入。
9.如何在Android下使用JNI
第一步: 使用Java编写HelloWorld 的Android应用程序: 复制代码 package com.lucyfyr; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.v("dufresne", printJNI("I am HelloWorld Activity")); } static { //加载库文件 System.loadLibrary("HelloWorldJni"); } //声明原生函数 参数为String类型 返回类型为String private native String printJNI(String inputStr); } 复制代码 这一步我们可以使用eclipse来生成一个App; 因为eclipse会自动为我们编译此Java文件,后面要是用到。
第二步: 生成共享库的头文件: 进入到eclipse生成的Android Project中 :/HelloWorld/bin/classes/com/lucyfyr/ 下: 可以看到里面后很多后缀为.class的文件,就是eclipse为我们自动编译好了的java文件,其中就有: HelloWorld.class文件。 退回到classes一级目录:/HelloWorld/bin/classes/ 执行如下命令: javah com.lucyfyr.HelloWorld 生成文件:com_lucyfyr_HelloWorld.h 复制代码 /* DO NOT EDIT THIS FILE - it is machine generated */ #include
当然函数名太长,可以在.c文件中通过函数名映射表来实现简化。 第三步: 实现JNI原生函数源文件: 新建com_lucyfyr_HelloWorld.c文件: 复制代码 #include
(*env)->ReleaseStringUTFChars(env, inputStr, (const char *)str ); return (*env)->NewStringUTF(env, "Hello World! I am Native interface"); } /* This function will be call when the library first be load. * You can do some init in the libray. return which version jni it support. */ jint JNI_OnLoad(JavaVM* vm, void* reserved) { void *venv; LOGI("dufresne----->JNI_OnLoad!"); if ((*vm)->GetEnv(vm, (void**)&venv, JNI_VERSION_1_4) != JNI_OK) { LOGE("dufresne--->ERROR: GetEnv failed"); return -1; } return JNI_VERSION_1_4; } 复制代码 onl oadJava_com_lucyfyr_HelloWorld_printJNI 函数里面做一些log输出 注意JNI中的log输出的不同。 JNI_OnLoad函数JNI规范定义的,当共享库第一次被加载的时候会被回调, 这个函数里面可以进行一些初始化工作,比如注册函数映射表,缓存一些变量等, 最后返回当前环境所支持的JNI环境。
本例只是简单的返回当前JNI环境。 第四步: 编译生成so库 编译com_lucyfyr_HelloWorld.c成so库可以和app一起编译,也可以都单独编译。
在当前目录下建立jni文件夹:HelloWorld/jni/ 下建立Android.mk ,并将com_lucyfyr_HelloWorld.c和 com_lucyfyr_HelloWorld.h 拷贝到进去 编写编译生成so库的Android.mk文件: 复制代码 LOCAL_PATH:= $(call my-dir) # 一个完整模块编译 include $(CLEAR_VARS) LOCAL_SRC_FILES:=com_lucyfyr_HelloWorld.c LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) LOCAL_MODULE := libHelloWorldJni LOCAL_SHARED_LIBRARIES := libutils LOCAL_PRELINK_MODULE := false LOCAL_MODULE_TAGS :=optional include $(BUILD_SHARED_LIBRARY) 复制代码 系统变量解析: LOCAL_PATH - 编译时的目录 $(call 目录,目录….) 目录引入操作符 如该目录下有个文件夹名称 src,则可以这样写 $(call src),那么就会得到 src 目录的完整路径 include $(CLEAR_VARS) -清除之前的一些系统变量 LOCAL_MODULE - 编译生成的目标对象 LOCAL_SRC_FILES - 编译的源文件 LOCAL_C_INCLUDES - 需要包含的头文件目录 LOCAL_SHARED_LIBRARIES - 链接时需要的外部库 LOCAL_PRELINK_MODULE - 是否需要prelink处理 include$(BUILD_SHARED_。
android项目描述怎么写
1.android程序员简历怎么写
一、基本格调
即打开简历之后的第一印象。就好比我们看见一个人,会有一个整体的感觉,他是fashion的、小清新的还是老道的?有了第一印象之后再慢慢分解来看。
加分写法:
简洁明了,逻辑结构清晰。
字体,排版,顺畅,清晰整齐就好。
最好是PDF格式,兼容性强且不易乱序。
减分写法:
设计的过于浮夸或者过于简单的。(eg.有的简历五颜六色、非常酷炫,却半天找不到联系方式,抑或是只有个人基本信息和公司名称)
写了十几页,半天打不开的,或者加载了半天,打开还乱码。
二、基本信息(姓名/性别/毕业院校/电话/邮箱/居住地/期望地)
加分写法:
清晰罗列出以上信息,这样HR就不用在接下来的电话沟通或面试中再去追问这些内容,建立我们接下来电话沟通对你的熟悉度。
再额外能加上QQ或者微信就更好了(以防有时候电话打不通哦,时不时会遇到这种情况)
减分写法:
大部分的基本信息没有写
甩给我一个Github链接,极致简洁的几句描述,需要通过你的链接来找你的联系方式。(如果不是博客写的特别好,基本是要放弃你了)
三、工作经历&项目经历
加分写法:
工作经历项目经历可参照万能的STAR法则来写,STAR不清楚的童鞋点这里啦
效力过哪些公司,我们匹配的公司? BAT? 知名大型互联网公司?
做过什么行业领域,和我们目前的行业是否匹配
擅长的技术语言,应用了哪些技术栈,(Java, Scala,Ruby, React, Vue, Microservice…)
经历的项目复杂度,及在项目中承担什么样的角色(人的变化/技术的变化/环境的变化/不同工作经历相同角色的不同点)
时间节点(空档期)
减分写法:
看了半天,不知所云,没有任何亮点,没有让人有去和你聊一聊深扒的信息。
2.android简历怎么写啊,有一年工作经验想跳槽,但不知怎么整简历
1. 熟悉android体系架构和android API
2. 熟悉android四大组件及数据存储,熟练使用MVC模式开发android应用 3,熟悉UI实现,多线程、XML和Json解析,文件IO流,MySQL,SQLite操作 4,了解.NET、C#、C++、C语言、Linux;
3. 项目描述:该记事本app是一个记事本编辑软件,主要功能有用户登录、用户注册、记事本增删查改、可分享到各大社交平台,批量操作管理、在线备份或还原到本地等功能。
4. 责任描述:担任项目小组长,根据产品功能需求设计,负责组员之间代码的整合,主要每天将组员修改的代码整合在一起,让整个程序能够正常的运行。并且编写设计开发及实现文档。
android项目怎么写
1. android开发简历怎么写
android的跳槽,简历,面试那些事
至今为止,在小组Android开发招聘这块,已经面试有近30人了。最后得出一个结论:对于Android开发人员来说,想找到合适的工作不是一件很容易的事,同样的,对于公司来说,想招到合适的目标岗位的Android开发也是很难的。
一、关于跳槽
每个人对于是否跳槽想法不同,也有些人是骑驴找马,也不一定就非要换工作,只不过先找找看,看看有没有更符合自己期望的。当然,这所谓的期望,对绝大部分Android开发而言,无外乎薪酬和机会。
我对跳槽的观点:
1.不可抗力导致的必须要跳槽的。如:男女朋友/夫妻一方在另外一个城市,当前的公司经营不善或倒闭了,当前公司因业务或架构等调整引起的人员调整等;
2.当前工作岗位的薪酬与自己所做的工作成果不太匹配的;
3.当前工作岗位的工作与自己能力不太匹配的,技术实力难以施展或没有(技术)成长空间的;
4.领导与自己在多处问题上持有不同观点,且激烈到难以调和的。
如果有上述情况,那么,可能选择跳槽就是难以避免的了。
二、关于简历
先大概归纳下个人在简历筛选上的一些偏好吧:
1.技术人员的简历不要太多的页数,最多两个足矣,一页最好;
2.个人的重要的基本信息还是要有的,如性别、出生日期(因为有些面试官会在意年龄)、籍贯、基本的联系方式、毕业院校和专业、毕业时间等;
3.言简意赅,突出重点和亮点。
其实,于招聘企业来说,在发出招聘信息时,已经有了一个大概的招聘要求,对于面试官来说,心中也已经有一定的。在庞杂的众多简历中,如果能够脱引而出,是每个应聘者需要好好考虑的。有时候,经常会听到这样一种观点,技术人员没必要弄那些虚的,扎扎实实的技术实力充分的体现在面试过程中就可以了。其实,我对此并不赞同。
1.简历简历,是陈述一个人的基本成长经历,尤其是应聘目标岗位要求相关的经历。这直接反应的是岗位的匹配度;
2.简历不仅仅是简历本身,同时也是应聘者对于过往经历的回顾、总结与提炼,一份认真准备的简历也是应聘者应聘诚意的反应;
3.认真准备的简历,与虚不虚没有关系,扎扎实实的技术实力固然可以充分的体现在面试过程中,但简历中的重点和亮点可以使得面试官更好的提问和交流,为自己加分。
注:目前看过的数百份简历中,真正让我感觉还不错的简历很少。即便如此,更有一些简历却让我印象深刻:
1.记得有份简历整个看完后我不知道应聘者年纪多大,哪年毕业的;
2.另一份简历长达8页,上面基本上都是历数以往各个外包项目,及其详细情况的;
3.有的简历上出现了将公司简介直接复制粘贴上来半夜纸的,是想让面试官详细了解清楚你当前的公司嘛。
三、关于面试
不同的公司具有不同的面试环节。以我当前所在公司为例。所有应聘者都需先笔试,再进行具体的面试环节。面试中发现的问题有:
1.不少应聘者甚至不知道自己过来面试的公司是干什么的,具体是做什么互联网产品的;
2.笔试主要是针对Java基础,其实不管做的怎么样,其实只是做一个参考。不少面试者一发现先还要做题,有些慌张,甚至还遇到了一个工作七年的,问我:我可以不做题直接面试吗?在得到否定回答和向其解释后,她接过题目看了眼说:不过我做题比较快,估计二十分钟搞定。好吧,最后做了一个多小时;
3.面试环节我尽量让应聘者占据主动,希望他们自己多说,我多听,实际上,多数面试者准备不足。
总之,不少面试者都是抱着过来试试,过来看看的态度,并没有做好较为充分准备,起码,你应该知道我面试的这家公司是干什么的吧。
四、关于规划
遇到有即将毕业的Android开发实习生曾跟我聊天,希望给其一些建议。我曾详细说过我的一些观点,本文中再次阐述一下,仅供参考:
1.刚毕业建议去稍微大些的互联网公司,做互联网产品,最好不要去外包公司,具体道理不解释;
2.刚毕业在技术广度与深度之间要把握好度,在时间有限情况下优先把握深度,同时深度的度也要把握好;
3.自己的技术老大很重要,小组技术氛围也很重要,技术一起分享和交流总比你一个人学起来快很多;
最后建议所有公司在招聘实习生时,以培养为主,不要总是想着招来是来干活的,甚至直接期望其一毕业直接当做Android主程来用,太急功近利,不太现实。
2. android简历怎么写啊,有一年工作经验想跳槽,但不知怎么整简历
1. 熟悉android体系架构和android API
2. 熟悉android四大组件及数据存储,熟练使用MVC模式开发android应用 3,熟悉UI实现,多线程、XML和Json解析,文件IO流,MySQL,SQLite操作 4,了解.NET、C#、C++、C语言、Linux;
3. 项目描述:该记事本app是一个记事本编辑软件,主要功能有用户登录、用户注册、记事本增删查改、可分享到各大社交平台,批量操作管理、在线备份或还原到本地等功能。
4. 责任描述:担任项目小组长,根据产品功能需求设计,负责组员之间代码的整合,主要每天将组员修改的代码整合在一起,让整个程序能够正常的运行。并且编写设计开发及实现文档。
3. eclipse怎么写android
步骤
1
1)首先,下载android SDK.介绍一种非常简单的方法,一并下载eclipse.在百度中输入android SDK,进入搜索界面。选中第一条。
2)如果你已经有eclipse,你可以直接在eclipse中进行android SDK插件的安装。方法就是点击上面菜单里的help,选择install new software进行添加SDK。具体方法见经验如何在eclipse中添加android SDk。
2
进入下载界面后,选择适合自己电脑的SDK进行下载。这里下载的是android开发工具,非常的简单实用,不需要我么重新下载eclipse,在这个下载包中会自带一个eclipse FOR android的develop工具,我们直接在里面就可以进行android的开发。
3
下载完成后解压,解压后我们进入文件名为eclipse的文件夹中。点击eclipse应用程序,运行。运行如图,和我们常用的eclipse是不一样的因为这个是android的开发工具,只适用于开发android。里面有好的插件已经提供给我们,不需要再进行安装。
4
进入eclipse界面后,开始新建android项目。输入新建项目名,如果没有特殊要求,点击next一直至最后完成。开始的配置只是一个大体的框架的构建,这些我们可以以后进行修改,最总要的还是代码的编写。
5
所有配置都完成后就可以开始进行android的开发了。如图:
进行android开发的时候建议不要用拖拽控件的方式,建议直接编写代码。
END
java环境变量配置
这里顺便介绍一下java环境变量的配置。
1)首先打开环境变量的界面,添加一个JAVA_HOME的值。右击计算机属性,在左侧有高级设置,进入后就会看见环境变量选项了。
2)在系统变量中建立java_home,将你的java SDK所在的路径放在里面。
2
建立classpath。同样在系统变量中新建一个classpath,在下面输入.;即可,不用输入其他的值。
步骤阅读
3
运行cmd,测试。按win+R打开命令面板,输入cmd,进入后输入java -version然后回车,接着输入javac,回车,看结果是否与下图相同。
这里需要注意的是java -version的java后面是有空格的。
转载请注明出处育才学习网 » android项目经验怎么写
育才学习网