https://github.com/wasabeef/awesome-android-ui

https://android-arsenal.com/


List of Android UI/UX Libraries

Project status

A curated list of awesome Android UI/UX libraries.

Core Library is here.

Index (light-weight page)

Material

NameLicenseDemo
MaterialDesignLibraryApache License V2      
DrawerArrowDrawableApache License V2
MaterialTabsApache License V2 
PagerSlidingTabStripApache License V2
material-rippleApache License V2
RippleEffectMIT
LDrawerApache License V2
material-design-iconsApache License V2
AndroidMaterialDesignToolbarUnKnown
MaterialEditTextApache License V2
material-menuApache License V2 
material-dialogsApache License V2  
AlertDialogProApache License V2  
MaterialNavigationDrawerApache License V2
MaterialDialogApache License V2 
materialish-progressApache License V2 
FloatingActionButtonMIT
android-floating-action-buttonApache License V2 
snackbarMIT
CircularRevealApache License V2
material-range-barApache License V2 
Lollipop-AppCompat-Widgets-SkeletonApache License V2
CarbonApache License V2NONE
material-calendarviewApache License V2
MaterialApache License V2     

Layout

NameLicenseDemo
WaveViewApache License V2
ResideLayoutApache License V2
AndroidSwipeLayoutMIT 
FreeFlowApache License V2
SwipeBackLayoutApache License V2 
Maskable LayoutApache License V2
ExpandableLayoutMIT
android-PullRefreshLayoutMIT
TileViewMIT 
ShowcaseViewApache License V2 
Ultra Pull To RefreshApache License V2  
AndroidViewHoverUnKnown
DraggablePanelApache License V2 
SlidrApache License V2
Pull-to-Refresh.Rentals-AndroidApache License V2
Pull-to-Refresh.ToursApache License V2
InboxLayoutUnKnown
SwipeBackUnKnown 
ArcLayoutApache License V2
DraggerApache License V2

Button

NameLicenseDemo
circular-progress-buttonApache License V2
android-process-buttonApache License V2 
android-circlebuttonApache License V2
android-flat-buttonApache License V2
MovingButtonMIT
LabelViewApache License V2

List / Grid

NameLicenseDemo
SuperRecyclerViewApache License V2NONE
FlabbyListViewApache License V2 
recyclerview-stickyheadersMIT
ParallaxListViewUnKnown
PullZoomViewApache License V2
SwipeMenuListViewMIT
discrollviewApache License V2
StickyListHeadersApache License V2
ListBuddiesApache License V2 
Android-ObservableScrollViewApache License V2             
AsymmetricGridViewApache License V2 
DynamicGridMIT
AndroidStaggeredGridApache License V2
SwipeListViewApache License V2
android-parallax-recyclerviewApache License V2 
BlurStickyHeaderListViewMIT
RecyclerView AnimatorsApache License V2 
RecyclerView-FlexibleDividerApache License V2 
AndroidTreeViewApache License V2 
RecyclerViewFastScrollerApache License V2 

ViewPager

NameLicenseDemo
ParallaxPagerTransformerUnKnown
ViewPagerTransformsApache License V2
CircleIndicatorMIT
Android ViewPagerIndicatorApache License V2
Android-ParallaxHeaderViewPagerApache License V2
freepagerApache License V2
SpringIndicatorApache License V2
SmartTabLayoutApache License V2

Label / Form

NameLicenseDemo
Shimmer-androidApache License V2
Shimmer for AndroidBSD 2 License
TitanicApache License V2
MatchViewApache License V2
android-autofittextviewApache License V2
SecretTextViewUnKnown
TextJustify-AndroidApache License V2
RoundedLetterViewApache License V2
TextDrawableApache License V2 
BabushkaTextApache License V2
ExpandableTextViewApache License V2
Float Labeled EditTextApache License V2

Image

NameLicenseDemo
TouchImageViewLICENSENONE
CircleImageViewApache License V2
android-shape-imageviewApache License V2 
GifImageViewMIT
cropperApache License V2
android-cropApache License V2
SelectableRoundedImageViewApache License V2
RoundedImageViewApache License V2 
CropImageViewApache License V2

SeekBar

NameLicenseDemo
DiscreteSeekBarApache License V2 

Progress

NameLicenseDemo
SmoothProgressBarApache License V2
NumberProgressBarMIT
CircleProgressUnKnown
android-square-progressbarUnKnown  
GoogleProgressBarApache License V2  
Android-RoundCornerProgressBarApache License V2

Menu

NameLicenseDemo
CircularFloatingActionMenuMIT
AndroidResideMenuMIT
Side-Menu.AndroidApache License V2
Context-Menu.AndroidApache License V2

ActionBar

NameLicenseDemo
FadingActionBarApache License V2
GlassActionBarApache License V2
NotBoringActionBarApache License V2

Dialog

NameLicenseDemo
DialogPlusApache License V2 

Calendar

NameLicenseDemo
CaldroidMIT
android-times-squareApache License V2
Android-MonthCalendarWidgetApache License V2
android-betterpickersApache License V2
Android-Week-ViewApache License V2

Graph

NameLicenseDemo
EazeGraphApache License V2  
hellocharts-androidApache License V2 
MPAndroidChartApache License V2  
WilliamChartApache License V2 

Animation

NameLicenseDemo
AndroidViewAnimationsMIT
ListViewAnimationsApache License V2
AndroidImageSliderMIT
transitions-everywhereApache License V2
Android Ripple BackgroundMIT 
android-flipMIT 
FragmentTransactionExtendedApache License V2 
KenBurnsViewApache License V2
reboundBSD 2 Licensehttp://facebook.github.io/rebound/
ReachabilityApache License V2
AnimationEasingFunctionsMIT
EasyAndroidAnimationsUnKnown
android-pathviewApache License V2
ViewRevealAnimatorApache License V2
ArcAnimatorMIT 
SearchMenuAnimUnKnown

Parallax

NameLicenseDemo
ParallaxEverywhereMIT

Effect

NameLicenseDemo
EtsyBlurApache License V2
BlurDialogFragmentApache License V2 
BlurBehindMIT 
Android StackBlurApache License V2
EdgeEffectOverrideApache License V2

Other

NameLicenseDemo
SwipecardsApache License V2
Android-BootstrapMIT
Android PDFViewGPL V3
DspecApache License V2
LolliPinApache License V2
DrawableViewApache License V2
Material Shadow 9-PatchApache License V2



http://52.11.176.238/localization/



개요

구글 스프레드 시트 ---> 다국어 스트링 파일 생성기 ---> iOS/ Android 바로 적용 가능한 폴더구조로 파일 생성


자세한 내용은 아래 영상을 보시면 좋을 듯 합니다.

GoogleTranslate 를 손쉽게 이용해서 원하는 국가에 배포할 수 있을 뿐 아니라, 언어 담당자들과 개발자간 협업에 큰 도움이 될 것 같습니다.


사용법 보기

https://youtu.be/1vdiJwBh4ug



https://github.com/PhilJay/MPAndroidChart


Remember: It's all about the looks.

alt tag

MPAndroidChart is a powerful & easy to use chart library for Android, supporting line-, bar-, scatter-, candlestick-, pie- and radarcharts (spider web), as well as scaling, dragging (panning), selecting and animations. Works on Android 2.2 (API level 8) and upwards.

An iOS version of this library is now available, go check it out: ios-charts

Donations

This project needs you! If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, feel free to donate. Your donation is highly appreciated (and I love food, coffee and beer). Thank you!

PayPal

  • Donate 5 $: Thank's for creating this project, here's a coffee (or some beer) for you!
  • Donate 10 $: Wow, I am stunned. Let me take you to the movies!
  • Donate 15 $: I really appreciate your work, let's grab some lunch!
  • Donate 25 $: That's some awesome stuff you did right there, dinner is on me!
  • Donate 50 $: I really really want to support this project, great job!
  • Donate 100 $: You are the man! This project saved me hours (if not days) of struggle and hard work, simply awesome!
  • Donate 300 $: I can afford it and want to assure the further development and maintenance of this project. Furthermore, I also want to show my gratitude to it's creator.
  • Of course, you can also choose what you want to donate, all donations are awesome!

Spread the word

  

Demo

For a brief overview of the most important features, please download the PlayStore DemoMPAndroidChart Example.apk and try it out. The corresponding code for the demo-application is also included in this repository inside the MPChartExample folder.

ScreenShot

Questions & Issues

If you are having questions or problems, you should:

  • Make sure you are using the latest version of the library. Check the release-section.
  • Study the Documentation-Wiki
  • Search or open questions on stackoverflow with the mpandroidchart tag
  • Search known issues for your problem (open and closed)
  • Create new issues (please search known issues before, do not create duplicate issues)

Features

Core features:

  • Scaling on both axes (with touch-gesture, axes separately or pinch-zoom)
  • Dragging / Panning (with touch-gesture)
  • Combined-Charts (line-, bar-, scatter-, candle-data)
  • Dual (separate) Y-Axis
  • Finger drawing (draw values into the chart with touch-gesture)
  • Highlighting values (with customizeable popup-views)
  • Multiple / Separate Axes
  • Save chart to SD-Card (as image, or as .txt file)
  • Predefined color templates
  • Legends (generated automatically, customizeable)
  • Customizeable Axes (both x- and y-axis)
  • Animations (build up animations, on both x- and y-axis)
  • Limit lines (providing additional information, maximums, ...)
  • Fully customizeable (paints, typefaces, legends, colors, background, gestures, dashed lines, ...)
  • Smooth zooming and scrolling for up to 30.000 data points in Line- and BarChart

Chart types:

  • LineChart (with legend, simple design) alt tag
  • LineChart (with legend, simple design) alt tag

  • LineChart (cubic lines) alt tag

  • LineChart (single DataSet) alt tag

  • Combined-Chart (bar- and linechart in this case) alt tag

  • BarChart (with legend, simple design)

alt tag

  • BarChart (grouped DataSets)

alt tag

  • Horizontal-BarChart

alt tag

  • PieChart (with selection, ...)

alt tag

  • ScatterChart (with squares, triangles, circles, ... and more)

alt tag

  • CandleStickChart (for financial data)

alt tag

  • RadarChart (spider web chart)

alt tag

Usage

In order to use the library, there are 4 options:

1. Gradle dependency

  • Add the following to your build.gradle:

    repositories {
        maven { url "https://jitpack.io" }
    }
    
    dependencies {
        compile 'com.github.PhilJay:MPAndroidChart:v2.0.8'
    }

2. Maven

  • Add the following to your pom.xml:

    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
    
    <dependency>
        <groupId>com.github.PhilJay</groupId>
        <artifactId>MPAndroidChart</artifactId>
        <version>v2.0.8</version>
    </dependency>

3. jar file only

  • Download the latest .jar file from the releases section
  • Copy the mpandroidchartlibrary-.jar file into the libs folder of your Android application project
  • Start using the library

4. clone whole repository

  • Open your commandline-input and navigate to your desired destination folder (where you want to put the library)
  • Use the command git clone https://github.com/PhilJay/MPAndroidChart.git to download the full MPAndroidChart repository to your computer (this includes the folder of the library project as well as the example project)
  • Import the library folder (MPChartLib) into your Eclipse workspace
  • Add it as a reference to your project: referencing library projects in Eclipse

Documentation

For a detailed documentation, please have a look at the Wiki.

Furthermore, you can also rely on the MPChartExample folder and check out the example code in that project. The corresponding application to the example project is also available in the Google PlayStore.

You have a problem that cannot be solved by having a look at the example project and documentation? No problem, let's talk: Gitter

License

Copyright 2015 Philipp Jahoda

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Special thanks to mikegrph1lb4 and jitpack.io for their contributions to this project.



ANDROID NDK: HOW TO REDUCE BINARIES SIZE – THE ALGOLIA BLOG

Android NDK and scalingWhen we started Algolia Development for Android, binary size optimization was not one of our main concerns. In fact we even started to develop in JAVA before switching to C/C++ for reasons of performance.

We were reminded of the importance of binary size by Cyril Mottier who informed us that it would be difficult to integrate our lib in AVelov Android Application because its size. AVelov is 638KB and Algolia was 850KB, which would mean that AVelov would more than double in size with Algolia Search embedded.

To address this problem we managed to reduce Algolia binary size from 850KB to 307KB. In this post we share how we did it.

Do not use Exceptions and RTTI

We actually do not use exceptions in our native lib, but for the sake of completeness, I’ll cover this point too.

C++ exceptions and RTTI are disabled by default but you can enable them via APP_CPPFLAGS in your Application.mk file and use a compatible STL, for example:

Whilst using exceptions and RTTI can help you to use existing code, it will obviously increase your binary size. If you have a way to remove them, go for it! Actually, there’s another reason to avoid using C++ exceptions: their support is still far from perfect. For example if was impossible for us to catch a C++ exception and launch a Java exception in JNI. The following code results in a crash (will probably be fixed in a future release of the Android NDK toolchain):

Do not use iostream

When starting to investigate our library size following Cyril’s feedback, we discovered that Algolia binaries had vastly increased in size since our last release (from 850KB to 1.35MB)! We first suspected the Android NDK toolchain since we upgraded it and tested different toolchains, but we only observed minor changes.

By dichotomy search in our commits, we discovered that a single line of code was responsible for the inflation:

As incredible as it may sound, using iostream increases a lot the binary size. Our tests shown that it adds a least 300KB per architecture! You must be very careful with iostream and prefer to use __android_log_print method:

Make sure you also link against the logging library, in your Android.mk file:

Use -fvisibility=hidden

An efficient way to reduce binary size is to use the visibility feature of gcc. This feature lets you control which functions will be exported in the symbols table. Hopefully, JNI comes with a JNIEXPORT macro that flags JNI functions as public. You just have to check that all functions used by JNI are prefixed by JNIEXPORT, like this one:

Then you have just to add -fvisibility=hidden for C and C++ files in Android.mk file:

In our case the binaries were down to 809KB (-5%) but remember the gains may be very different for your project. Make your own measures!

Discard Unused Functions with gc-sections

Another interesting approach is to remove unused code in the binary. It can drastically reduce its size if for example part of your code is only used for tests.
To enable this feature, you just have to change the C and C++ compilation flags and the linker flags in Android.mk:

Of course you can combine this feature with the visibility one:


This optim only got us a 1% gain, but once combined with the previous visibility one, we were down to 691KB (-18.7%).

Remove Duplicated Code

You can remove duplicated code with the –icf=safe option of the linker. Be careful, this option will probably remove your code inlining, you must check that this flag does not impact performance.

This option is not yet available on the mips architecture so you need to add an architecture check inAndroid.mk:

And if you want to combine this option with gc-sections:

We actually only obtained a 0.8% gain in size with this one. All previous optimizations combined, we were now at 687KB (-19.2%).

Change the Default Flags of the Toolchain

If you want to go even further, you can change the default compilation flags of the toolchain. Flags are not identical accross architectures, for example:

  • inline-limit is set to 64 for arm and set to 300 for x86 and mips
  • Optimization flag is set to -Os (optimize for size) for arm and set to -O2 (optimize for performance) for x86 and mips

As arm is used by the large majority of devices, we have applied arm settings for other architectures. Here is the patch we applied on the toolchain (version r8d):

We were good for a 8.5% gain with these new flags. Once combined with previous optimizations, we were now at 613KB (-27.9%).

Limit the Number of Architectures

Our final suggestion is to limit the number of architectures. Supporting armeabi-v7a is mandory for performance if you have a lot of floating point computation, but armeabi will provide a similar result if you do not need a FPU. As for mips processors… well they just are not in use on the market today.

And if binary size is really important to you, you can just limit your support to armeabi and x86 architectures in Application.mk:

Obviously, this optim was the killer one. Dropping two out of four architectures halved the binaries size. Overall we obtained a size of 307KB, a 64% gain from the initial 850KB (not counting the bump at 1.35MB due to iostream).

Conclusion

I hope this post will help you to reduce the size of your native libraries on Android since default flags are far from optimal. Don’t expect to obtain the same size reductions, they will highly depend on your specific usage. And if you know other methods to reduce binary size, please share in the comments!


1) git clone git://git.videolan.org/x264.git

2) cd x264

export NDK=/home/dongho/android-ndk-r9d
$NDK/build/tools/make-standalone-toolchain.sh --install-dir=./toolchain
export PATH=$PATH:$NDK:/home/dongho/toolchain/bin

./configure --host=arm-linux --cross-prefix=arm-linux-androideabi- --prefix=./build/x264 --enable-static --enable-pic --extra-cflags="-fPIC -DANDROID -mcpu=cortex-a8 -mfpu=neon"

make STRIP=


SILK 코덱 버전 1.0.7 ARM 사용 (http://developer.skype.com/silk)

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

SILK     := silk

LOCAL_MODULE    := silk

LOCAL_SRC_FILES := $(SILK)/src/SKP_Silk_A2NLSF.c \

$(SILK)/src/SKP_Silk_allpass_int.c \

$(SILK)/src/SKP_Silk_ana_filt_bank_1.c \

$(SILK)/src/SKP_Silk_apply_sine_window.c \

$(SILK)/src/SKP_Silk_array_maxabs.c \

$(SILK)/src/SKP_Silk_autocorr.c \

$(SILK)/src/SKP_Silk_biquad.c \

$(SILK)/src/SKP_Silk_biquad_alt.c \

$(SILK)/src/SKP_Silk_burg_modified.c \

$(SILK)/src/SKP_Silk_bwexpander.c \

$(SILK)/src/SKP_Silk_bwexpander_32.c \

$(SILK)/src/SKP_Silk_CNG.c \

$(SILK)/src/SKP_Silk_code_signs.c \

$(SILK)/src/SKP_Silk_control_codec_FIX.c \

$(SILK)/src/SKP_Silk_corrMatrix_FIX.c \

$(SILK)/src/SKP_Silk_create_init_destroy.c \

$(SILK)/src/SKP_Silk_decoder_set_fs.c \

$(SILK)/src/SKP_Silk_decode_core.c \

$(SILK)/src/SKP_Silk_decode_frame.c \

$(SILK)/src/SKP_Silk_decode_parameters.c \

$(SILK)/src/SKP_Silk_decode_pitch.c \

$(SILK)/src/SKP_Silk_decode_pulses.c \

$(SILK)/src/SKP_Silk_dec_API.c \

$(SILK)/src/SKP_Silk_detect_SWB_input.c \

$(SILK)/src/SKP_Silk_encode_frame_FIX.c \

$(SILK)/src/SKP_Silk_encode_parameters.c \

$(SILK)/src/SKP_Silk_encode_pulses.c \

$(SILK)/src/SKP_Silk_enc_API.c \

$(SILK)/src/SKP_Silk_find_LPC_FIX.c \

$(SILK)/src/SKP_Silk_find_LTP_FIX.c \

$(SILK)/src/SKP_Silk_find_pitch_lags_FIX.c \

$(SILK)/src/SKP_Silk_find_pred_coefs_FIX.c \

$(SILK)/src/SKP_Silk_gain_quant.c \

$(SILK)/src/SKP_Silk_HP_variable_cutoff_FIX.c \

$(SILK)/src/SKP_Silk_init_encoder_FIX.c \

$(SILK)/src/SKP_Silk_inner_prod_aligned.c \

$(SILK)/src/SKP_Silk_interpolate.c \

$(SILK)/src/SKP_Silk_k2a.c \

$(SILK)/src/SKP_Silk_k2a_Q16.c \

$(SILK)/src/SKP_Silk_LBRR_reset.c \

$(SILK)/src/SKP_Silk_lin2log.c \

$(SILK)/src/SKP_Silk_log2lin.c \

$(SILK)/src/SKP_Silk_lowpass_int.c \

$(SILK)/src/SKP_Silk_lowpass_short.c \

$(SILK)/src/SKP_Silk_LPC_inv_pred_gain.c \

$(SILK)/src/SKP_Silk_LPC_stabilize.c \

$(SILK)/src/SKP_Silk_LPC_synthesis_filter.c \

$(SILK)/src/SKP_Silk_LPC_synthesis_order16.c \

$(SILK)/src/SKP_Silk_LP_variable_cutoff.c \

$(SILK)/src/SKP_Silk_LSF_cos_table.c \

$(SILK)/src/SKP_Silk_LTP_analysis_filter_FIX.c \

$(SILK)/src/SKP_Silk_LTP_scale_ctrl_FIX.c \

$(SILK)/src/SKP_Silk_MA.c \

$(SILK)/src/SKP_Silk_NLSF2A.c \

$(SILK)/src/SKP_Silk_NLSF2A_stable.c \

$(SILK)/src/SKP_Silk_NLSF_MSVQ_decode.c \

$(SILK)/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c \

$(SILK)/src/SKP_Silk_NLSF_stabilize.c \

$(SILK)/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c \

$(SILK)/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c \

$(SILK)/src/SKP_Silk_NLSF_VQ_weights_laroia.c \

$(SILK)/src/SKP_Silk_noise_shape_analysis_FIX.c \

$(SILK)/src/SKP_Silk_NSQ.c \

$(SILK)/src/SKP_Silk_NSQ_del_dec.c \

$(SILK)/src/SKP_Silk_pitch_analysis_core.c \

$(SILK)/src/SKP_Silk_pitch_est_tables.c \

$(SILK)/src/SKP_Silk_PLC.c \

$(SILK)/src/SKP_Silk_prefilter_FIX.c \

$(SILK)/src/SKP_Silk_process_gains_FIX.c \

$(SILK)/src/SKP_Silk_process_NLSFs_FIX.c \

$(SILK)/src/SKP_Silk_quant_LTP_gains_FIX.c \

$(SILK)/src/SKP_Silk_range_coder.c \

$(SILK)/src/SKP_Silk_regularize_correlations_FIX.c \

$(SILK)/src/SKP_Silk_resampler.c \

$(SILK)/src/SKP_Silk_resampler_down2.c \

$(SILK)/src/SKP_Silk_resampler_down2_3.c \

$(SILK)/src/SKP_Silk_resampler_down3.c \

$(SILK)/src/SKP_Silk_resampler_private_AR2.c \

$(SILK)/src/SKP_Silk_resampler_private_ARMA4.c \

$(SILK)/src/SKP_Silk_resampler_private_copy.c \

$(SILK)/src/SKP_Silk_resampler_private_down4.c \

$(SILK)/src/SKP_Silk_resampler_private_down_FIR.c \

$(SILK)/src/SKP_Silk_resampler_private_IIR_FIR.c \

$(SILK)/src/SKP_Silk_resampler_private_up2_HQ.c \

$(SILK)/src/SKP_Silk_resampler_private_up4.c \

$(SILK)/src/SKP_Silk_resampler_rom.c \

$(SILK)/src/SKP_Silk_resampler_up2.c \

$(SILK)/src/SKP_Silk_residual_energy16_FIX.c \

$(SILK)/src/SKP_Silk_residual_energy_FIX.c \

$(SILK)/src/SKP_Silk_scale_copy_vector16.c \

$(SILK)/src/SKP_Silk_scale_vector.c \

$(SILK)/src/SKP_Silk_schur.c \

$(SILK)/src/SKP_Silk_schur64.c \

$(SILK)/src/SKP_Silk_shell_coder.c \

$(SILK)/src/SKP_Silk_sigm_Q15.c \

$(SILK)/src/SKP_Silk_solve_LS_FIX.c \

$(SILK)/src/SKP_Silk_sort.c \

$(SILK)/src/SKP_Silk_sum_sqr_shift.c \

$(SILK)/src/SKP_Silk_tables_gain.c \

$(SILK)/src/SKP_Silk_tables_LTP.c \

$(SILK)/src/SKP_Silk_tables_NLSF_CB0_10.c \

$(SILK)/src/SKP_Silk_tables_NLSF_CB0_16.c \

$(SILK)/src/SKP_Silk_tables_NLSF_CB1_10.c \

$(SILK)/src/SKP_Silk_tables_NLSF_CB1_16.c \

$(SILK)/src/SKP_Silk_tables_other.c \

$(SILK)/src/SKP_Silk_tables_pitch_lag.c \

$(SILK)/src/SKP_Silk_tables_pulses_per_block.c \

$(SILK)/src/SKP_Silk_tables_sign.c \

$(SILK)/src/SKP_Silk_tables_type_offset.c \

$(SILK)/src/SKP_Silk_VAD.c \

$(SILK)/src/SKP_Silk_VQ_nearest_neighbor_FIX.c \

$(SILK)/src/SKP_Silk_A2NLSF_arm.S \

$(SILK)/src/SKP_Silk_allpass_int_arm.S \

$(SILK)/src/SKP_Silk_ana_filt_bank_1_arm.S \

$(SILK)/src/SKP_Silk_apply_sine_window_arm.S \

$(SILK)/src/SKP_Silk_array_maxabs_arm.S \

$(SILK)/src/SKP_Silk_biquad_alt_arm.S \

$(SILK)/src/SKP_Silk_biquad_arm.S \

$(SILK)/src/SKP_Silk_clz_arm.S \

$(SILK)/src/SKP_Silk_inner_prod_aligned_arm.S \

$(SILK)/src/SKP_Silk_lin2log_arm.S \

$(SILK)/src/SKP_Silk_LPC_inv_pred_gain_arm.S \

$(SILK)/src/SKP_Silk_MA_arm.S \

$(SILK)/src/SKP_Silk_resampler_down2_arm.S \

$(SILK)/src/SKP_Silk_resampler_private_AR2_arm.S \

$(SILK)/src/SKP_Silk_resampler_private_ARMA4_arm.S \

$(SILK)/src/SKP_Silk_resampler_private_up2_HQ_arm.S \

$(SILK)/src/SKP_Silk_resampler_up2_arm.S \

$(SILK)/src/SKP_Silk_scale_add_vector32_arm.S \

$(SILK)/src/SKP_Silk_schur64_arm.S \

$(SILK)/src/SKP_Silk_sigm_Q15_arm.S \

$(SILK)/src/SKP_Silk_sum_vec_arm.S


SILK_CFLAGS = -DFIXED_POINT -DEXPORT="" -DUSE_ALLOCA

SILK_CFLAGS += -fstrict-aliasing -fprefetch-loop-arrays

SILK_CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon

SILK_CFLAGS += -D__ARM_EABI__ -D__ARM_ARCH_7A__ -D__ARM_NEON__


TARGET_ARCH := arm

TARGET_PLATFORM := android-8

TARGET_ARCH_ABI := armeabi-v7a

LOCAL_ARM_NEON := true

LOCAL_ARM_MODE := arm

#LOCAL_CFLAGS := $(SILK_CFLAGS)

LOCAL_CFLAGS := -O3

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SILK)/src $(LOCAL_PATH)/$(SILK)/interface

include $(BUILD_STATIC_LIBRARY)


include $(CLEAR_VARS)

LOCAL_MODULE    := silk16_jni

LOCAL_SRC_FILES := silk16_jni.cpp 

LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SILK)/src $(LOCAL_PATH)/$(SILK)/interface

LOCAL_CFLAGS = -O3 

LOCAL_STATIC_LIBRARIES :=  silk

LOCAL_ARM_MODE := arm

LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

include $(BUILD_SHARED_LIBRARY)


Application.mk

APP_ABI := armeabi-v7a

TARGET_ARCH_ABI := armeabi-v7a 



export NDK=/home/dongho/android-ndk-r10
$NDK/build/tools/make-standalone-toolchain.sh --install-dir=./toolchain
export PATH=$PATH:$NDK:/home/dongho/toolchain/bin

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

./configure --enable-gpl --enable-version3 --enable-nonfree --target-os=linux --arch=armv7-a --cpu=cortex-a8 --enable-cross-compile --cross-prefix=arm-linux-androideabi- --disable-pthreads --disable-decoders --disable-encoders --disable-ffserver --disable-ffprobe --disable-protocols --disable-muxers --disable-demuxers --disable-parsers --disable-devices --disable-filters --disable-bsfs --disable-network --disable-debug --disable-logging --enable-decoder=vp8 --enable-decoder=h264 --enable-swscale --enable-asm --prefix=/home/dongho/build/ffmpeg/neon  --extra-cflags='-marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon' --extra-ldflags='-Wl,--fix-cortex-a8'


+ Recent posts